一、list()构造函数
如上一课所述,您可以使用int()/float()/str()等构造函数将变量或值转换为给定类型。您可以使用list()构造函数将文本的可迭代对象转换为列表。
list1 = list("1234")
print(list1)
list2 = list(["1234"])
print(list2)
list3 = list(range(4))
print(list3)
执行结果:
['1', '2', '3', '4']
['1234']
[0, 1, 2, 3]
下面是一个简单的实现,说明了list()构造函数的工作原理。
def list(iterable):
result = []
for item in iterable:
result.append(item)
return result
二、列表操作
我们快速回顾一下列表支持的操作
语义 | 语法 |
创建列表 | list1 = [“a”,”b”,”c”] |
列表前缀串联 | [“x”,”y”,”z”] + llist1 |
列表后缀串联 | list1 + [“d”,”e”,”f”] |
乘法 | list1 * 3 |
长度 | len(list1) |
索引取值 | list1[2] |
负索引取值 | list1[-1] |
索引错误,超出范围 | list1[3] |
in 运算符 | “a” in list1 “ab” in list1 |
not in 运算符 | “d” not in list1 |
for循环 | for c in list1: print(c) |
与数字或字符串类似,拓展后的赋值运算符也适用于列表操作。
操作符 | 示例 | 等同于 |
+= | list1 += [1,2] | list1 = list1 + [1,2] |
*= | list1 *= 3 | list1 = list1 * 3 |
三、列表切片
与字符串相同,列表也支持切片,获取子列表。
切片语法:list1[start:end:step]
切片 | 结果 | 说明 |
fruits[2:4] | [“cherry”,”fig”] | 从索引2开始不包括索引4的值 |
fruits[3:] | [“fig”,”grape”] | 省略结束索引,默认拓展到结束 |
fruits[:] | [“apple”,”banana”,”cherry”,”fig”,”grape”] | 整个列表的副本 |
fruits[3:100] | [“fig”,”grape”] | 太大的索引将被截断为列表长度 |
fruits[100:] | [] | 索引100之后没有项目 |
fruits[:-3] | [“apple”,”banana”] | 不包括最后3项 |
fruits[-3:] | [“cherry”,”fig”,”grape”] | 从末尾的第3项开始,一直延伸到列表末尾 |
fruits[:2] + fruits[2:] | [“apple”,”banana”,”cherry”,”fig”,”grape”] | 总等于整个列表 |
fruits[3::] | [“fig”,”grape”] | 省略默认步长是1 |
fruits[1::2] | [“banana”,”fig”] | 返回一个子列表,其索引是1,3,步长是2 |
fruits[::-1] | [“grape”,”fig”,”cherry”,”banana”,”apple”] | 负步长将默认切片方向从左到右更改为从右到左。step=-1实质上是反转整个列表,返回一个子列表,其中的项目从最右边到最左边,每一步索引减少1. |
fruits[::-2] | [“grape”,”cherry”,”apple”] | 与上面的列子相同,但是每一步索引减少2. |
四、更改列表项
要更改列表项,可以使用索引号,例如:
fruits[0]="lemon"
要更改特定范围内项目的值,请使用新值定义一个列表,并参考要插入新值的索引号范围,例如:
fruits[1:3]=["dog"]
fruits[1:3]=[] #这将会将索引1和2中的项目替换为空列表,实质上是从fruits列表中删除这两个项目。
五、添加列表项
要将项目添加到列表末尾,请使用append()方法,例如:
fruits.append("lemon")
若要在指定索引处插入列表项,请使用insert()函数。insert()函数在指定的索引处插入一个项目:
fruits.insert(1,"organe")
fruits.insert(0,"mango") #将“mango”插入到列表的第一项,相当于 fruits = ["mango"] + fruits
若要将项目从另一个列表追加到当前类别,请使用extend()函数。
fruits.extend(["mango","pineapple"])
fruits.extend("mango") #extend()函数参数不一定非的是列表,可以添加任何可迭代的对象。在这个例子中,“mango”字符串是一个可迭代的对象,这本质上相当于fruits.extend(["m","a","n","g","o"])。
六、删除列表项
remove()方法可用于删除指定的项。
fruits.remove("apple")
pop()方法删除指定的索引项
fruits.pop(0) #删除第一项并返回该项
fruits.pop() #如果不指定索引,pop()方法将删除最后一项。
七、列表排序
fruits.sort() #按字母顺序对列表排序
fruits.sort(reverse=True) #降序排列,请使用关键字参数reverse=True
如果要颠倒列表的顺序,而不考虑字母表,该怎么办呢?reverse()方法反转元素的当前排序顺序,返回结果和fruits[::-1]相同
fruits.reverse()
叮当学习力:数理逻辑思维课
点图或扫码领0元课
更多课程