程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

初学者python笔记(列表)

发布于2020-02-24 22:07     阅读(1092)     评论(0)     点赞(0)     收藏(5)


本篇是关于可迭代对象中的列表一些相关盲点的记录。
可迭代对象简单描述:可以被for循环执行的对象(字符串,列表,元组,字典…)

  1. input()方法接收的其实只是字符串
    a = input(“请输入:”) #输入的是一个字符串类型,
    b = int(input(“请输入:”)) #将输入的函数转化为数字类型
value = "5+9"  #是一个字符串
v1,v2 = value.split('+')  #将'+'作为分隔符,前半部分赋值给v1,后半部分赋值给v2
v1 = int(v1)
v2 = int(v2)
v = v1+v2  #int()后就可以做运算了
print(v)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

因为v1和v2都被转化成数字型了,所有v结果自然是:14

  1. 列表(list类)(特征:中括号,可修改),取值方法
li = [1,12,9,"age",["串串香",["19",10],"今麦郎"],"alex",True]  #通过list类创建的一个对象li
print(li)  #列表可以作为一个整体打印出来
print(li[2])  #通过索引2(即下标,从0开始)来取元素9
#通过切片取3到5的元素,取出的结果仍然是个列表,范围是大于等于3,小于5,所以只有两个元素
print(li[3:5])  
#也支持for和while循环取值,即一个一个全部输出
for item in li:
	print(item)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果是:
[1, 12, 9, ‘age’, [‘串串香’, [‘19’, 10], ‘今麦郎’], ‘alex’, True]
9
[‘age’, [‘串串香’, [‘19’, 10], ‘今麦郎’]]
1
12
9
age
[‘串串香’, [‘19’, 10], ‘今麦郎’]
alex
True

  1. 列表可以修改
li = [1,12,9,"age",["串串香",["19",10],"今麦郎"],"alex",True]
li[1] = [11,22,33,44]  #通过下标修改
li[1:3] = [120,90]  #通过切片修改
print(li)
#删除某下标为1的元素,即删除12:
del li[1]
print(li)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果是:
[1, 120, 90, ‘age’, [‘串串香’, [‘19’, 10], ‘今麦郎’], ‘alex’, True]
[1, 90, ‘age’, [‘串串香’, [‘19’, 10], ‘今麦郎’], ‘alex’, True]

  1. 列表类似于C语言中的数组,并且可以多维
li = [1,12,9,"age",["是正文",["19",10],"庞麦郎"],"alex",True]
v = li[4][1][0][1]  #类似四维数组
print(v)
  • 1
  • 2
  • 3

答案是:9

  1. 字符串转列表时,会把每一个元素当成列表中的元素
s = "ajfskgahgkashgjhufywuyrlioqgfnjd"
new_li = list(s)
print(new_li)
  • 1
  • 2
  • 3

结果是:
[‘a’, ‘j’, ‘f’, ‘s’, ‘k’, ‘g’, ‘a’, ‘h’, ‘g’, ‘k’, ‘a’, ‘s’, ‘h’, ‘g’, ‘j’, ‘h’, ‘u’, ‘f’, ‘y’, ‘w’, ‘u’, ‘y’, ‘r’, ‘l’, ‘i’, ‘o’, ‘q’, ‘g’, ‘f’, ‘n’, ‘j’, ‘d’]

  1. 将列表拼接成一个字符串
li = ["123","alex"]
v = "".join(li)
print(v)
  • 1
  • 2
  • 3

结果是:123alex

  1. **append()方法与extend()**方法
    一个是将传入的数据当一个整体加入到列表中,一个是将传入的对象当成多个对象加入到列表中
li = [11,22,33,44]
li.append(5)  #在li的后面追加一个5
li.append([66,77,"age"])  #也可以列表,元组或字典
print(li)
li.clear()  #清空列表
li.extend([66,77,"age"])
li.extend("不得了")  #则会将"不得了"分开成3个元素加入到列表中
print(li)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果是:
[11, 22, 33, 44, 5, [66, 77, ‘age’]]
[66, 77, ‘age’, ‘不’, ‘得’, ‘了’]
Ps:不过在python3中,想要加入多个元素好像只能弄成列表,元组或者字典,ppend()和extend()不能直接传入多个值

  1. 拷贝与计算次数
li = ["alex",True,43,22,54,"age",22]
v = li.copy()  #拷贝一份到v
print(v)
v2 = li.count(22)  #计算某元素出现的次数
print(v2)
  • 1
  • 2
  • 3
  • 4
  • 5

结果是:
[‘alex’, True, 43, 22, 54, ‘age’, 22]
2

  1. **index()索引与insert()**插入
li = [11,22,33,22,44]
v = li.index(22)  #从前往后找,第一个与22匹配的位置
print(v)  
li.insert(0,99)   #在指定位置0插入元素99,即整个列表的前端
print(li)
  • 1
  • 2
  • 3
  • 4
  • 5

结果是:
1
[99, 11, 22, 33, 22, 44]

  1. 删除之pop()remove()
    pop删除为某个值并获取删除的值到某个变量(指定索引,默认为最后一个)
    remove删除为从左边开始数删除遇到的第一个指定元素,返回值是None
li = [11,22,33,22,44]
v = li.pop()  
print(v)
li.remove(22)
print(li)
v1 = li.remove(22)
print(v1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果是:
44
[11, 33, 22]
None

  1. 列表的翻转排序替换
    列表其实没有replace()这个方法,如果需要替换的话,必须先转换成字符串才可以实现replace()
li_1 = [11,44,22,33,22]
li_1.reverse()  #翻转列表中的元素
print(li_1)
li_1.sort()  #将列表元素排序,默认从小到大排
print(li_1)
li_1.sort(reverse=True)  #从大到小排
print(li_1)

li_2 = [55,22,00,'name?','age?',520]
st = str(li_2)  #用str()将列表转换成字符串类型
v = st.replace("name?","alex")  #用'what?'替换元素'alex'
print(v)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

结果是:
[22, 33, 22, 44, 11]
[11, 22, 22, 33, 44]
[44, 33, 22, 22, 11]
[55, 22, 0, ‘alex’, ‘age?’, 520]
Ps:其实这样的替换还不够好,它只能替换一个元素,但我们可以这样:

li=[5,'有','幸',1,'生','you','你']
dic={5:"我",1:"一","you":"有"}  #字典+键值对
li=[dic[i] if i in dic else i for i in li]
print(li)
  • 1
  • 2
  • 3
  • 4

结果是:
[‘我’, ‘有’, ‘幸’, ‘一’, ‘生’, ‘有’, ‘你’]
这里是利用了键值对来替换多个元素,这种方法真的非常好用,
第三行代码如果实在不理解,就直接拿来用也行,这是我自己做的简单解释:

#i是dic字典中的key(键),即 5,1,'you',dic[i]则是字典中的value(值)
li=[dic[i] if i in dic
            else i for i in li]
#如果key是列表里的元素,就将dic[i]放进去,即键值对中的值
#否则就遍历另外的key,再看是否满足条件
  • 1
  • 2
  • 3
  • 4
  • 5
发布了3 篇原创文章 · 获赞 3 · 访问量 120


所属网站分类: 技术文章 > 博客

作者:我下面给你吃

链接:https://www.pythonheidong.com/blog/article/232324/d2b76c84a3fc64a84cee/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)