卖衣服的网站排名,湖北专业网站建设公司,wordpress 按月归档,英文外链代发list Python内置的一种数据类型是列表#xff1a;list。list是一种有序的集合#xff0c;可以随时添加和删除其中的元素。 比如#xff0c;列出班里所有同学的名字#xff0c;就可以用一个list表示#xff1a; classmates [Michael, Bob, Tracy]
list。list是一种有序的集合可以随时添加和删除其中的元素。 比如列出班里所有同学的名字就可以用一个list表示 classmates [Michael, Bob, Tracy]classmates
[Michael, Bob, Tracy] 变量classmates就是一个list。用len()函数可以获得list元素的个数 len(classmates)
3 用索引来访问list中每一个位置的元素记得索引是从0开始的 classmates[0]
Michaelclassmates[1]
Bobclassmates[2]
Tracyclassmates[3]
Traceback (most recent call last):File stdin, line 1, in module
IndexError: list index out of range 当索引超出了范围时Python会报一个IndexError错误所以要确保索引不要越界记得最后一个元素的索引是len(classmates) - 1。 如果要取最后一个元素除了计算索引位置外还可以用-1做索引直接获取最后一个元素 classmates[-1]
Tracy 以此类推可以获取倒数第2个、倒数第3个 classmates[-2]
Bobclassmates[-3]
Michaelclassmates[-4]
Traceback (most recent call last):File stdin, line 1, in module
IndexError: list index out of range 当然倒数第4个就越界了。 list是一个可变的有序表所以可以往list中追加元素到末尾 classmates.append(Adam)classmates
[Michael, Bob, Tracy, Adam] 也可以把元素插入到指定的位置比如索引号为1的位置 classmates.insert(1, Jack)classmates
[Michael, Jack, Bob, Tracy, Adam] 要删除list末尾的元素用pop()方法 classmates.pop()
Adamclassmates
[Michael, Jack, Bob, Tracy] 要删除指定位置的元素用pop(i)方法其中i是索引位置 classmates.pop(1)
Jackclassmates
[Michael, Bob, Tracy] 要把某个元素替换成别的元素可以直接赋值给对应的索引位置 classmates[1] Sarahclassmates
[Michael, Sarah, Tracy] list里面的元素的数据类型也可以不同比如 L [Apple, 123, True] list元素也可以是另一个list比如 s [python, java, [asp, php], scheme]len(s)
4 要注意s只有4个元素其中s[2]又是一个list如果拆开写就更容易理解了 p [asp, php]s [python, java, p, scheme] 要拿到php可以写p[1]或者s[2][1]因此s可以看成是一个二维数组类似的还有三维、四维……数组不过很少用到。 如果一个list中一个元素也没有就是一个空的list它的长度为0 L []len(L)
0 tuple 另一种有序列表叫元组tuple。tuple和list非常类似但是tuple一旦初始化就不能修改比如同样是列出同学的名字 classmates (Michael, Bob, Tracy) 现在classmates这个tuple不能变了它也没有append()insert()这样的方法。其他获取元素的方法和list是一样的你可以正常地使用classmates[0]classmates[-1]但不能赋值成另外的元素。 不可变的tuple有什么意义因为tuple不可变所以代码更安全。如果可能能用tuple代替list就尽量用tuple。 tuple的陷阱当你定义一个tuple时在定义的时候tuple的元素就必须被确定下来比如 t (1, 2)t
(1, 2) 如果要定义一个空的tuple可以写成() t ()t
() 但是要定义一个只有1个元素的tuple如果你这么定义 t (1)t
1 定义的不是tuple是1这个数这是因为括号()既可以表示tuple又可以表示数学公式中的小括号这就产生了歧义因此Python规定这种情况下按小括号进行计算计算结果自然是1。 所以只有1个元素的tuple定义时必须加一个逗号,来消除歧义 t (1,)t
(1,) Python在显示只有1个元素的tuple时也会加一个逗号,以免你误解成数学计算意义上的括号。 最后来看一个“可变的”tuple t (a, b, [A, B])t[2][0] Xt[2][1] Yt
(a, b, [X, Y]) 这个tuple定义的时候有3个元素分别是ab和一个list。不是说tuple一旦定义后就不可变了吗怎么后来又变了 别急我们先看看定义的时候tuple包含的3个元素 当我们把list的元素A和B修改为X和Y后tuple变为 表面上看tuple的元素确实变了但其实变的不是tuple的元素而是list的元素。tuple一开始指向的list并没有改成别的list所以tuple所谓的“不变”是说tuple的每个元素指向永远不变。即指向a就不能改成指向b指向一个list就不能改成指向其他对象但指向的这个list本身是可变的 理解了“指向不变”后要创建一个内容也不变的tuple怎么做那就必须保证tuple的每一个元素本身也不能变。 练习 请用索引取出下面list的指定元素 # -*- coding: utf-8 -*-L [[Apple, Google, Microsoft],[Java, Python, Ruby, PHP],[Adam, Bart, Lisa]
] # 打印Apple:print(?)# 打印Python:print(?)# 打印Lisa:print(?) 小结 list和tuple是Python内置的有序集合一个可变一个不可变。根据需要来选择使用它们。 参考源码 the_list.py #!/usr/bin/env python3
# -*- coding: utf-8 -*-classmates [Michael, Bob, Tracy]
print(classmates , classmates)
print(len(classmates) , len(classmates))
print(classmates[0] , classmates[0])
print(classmates[1] , classmates[1])
print(classmates[2] , classmates[2])
print(classmates[-1] , classmates[-1])
classmates.pop()
print(classmates , classmates) the_tuple.py #!/usr/bin/env python3
# -*- coding: utf-8 -*-classmates (Michael, Bob, Tracy)
print(classmates , classmates)
print(len(classmates) , len(classmates))
print(classmates[0] , classmates[0])
print(classmates[1] , classmates[1])
print(classmates[2] , classmates[2])
print(classmates[-1] , classmates[-1])# cannot modify tuple:
classmates[0] Adam 转载于:https://www.cnblogs.com/AgainstTheWind/p/9858660.html