05. 列表元组
Posted juno3550
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05. 列表元组相关的知识,希望对你有一定的参考价值。
1. 列表
2. 元组
1. 列表
1.1 列表介绍
Python的列表比C语言的数组强大的地方在于,列表中的元素可以是不同类型的。
li = [1, "a", 1.2, [1, 2], (1, 2), {1:2}, {1, 2}]
1.2 列表的循环遍历
使用for循环
1 >>> li = [1, "a", 1.2, [1, 2], (1, 2), {1:2}, {1, 2}] 2 >>> li 3 [1, ‘a‘, 1.2, [1, 2], (1, 2), {1: 2}, {1, 2}] 4 >>> for i in li: 5 ... print(i) 6 ... 7 1 8 a 9 1.2 10 [1, 2] 11 (1, 2) 12 {1: 2} 13 {1, 2}
使用While循环
1 >>> li = [1, "a", 1.2, [1, 2], (1, 2), {1:2}, {1, 2}] 2 >>> num = len(li) 3 >>> flag = 0 4 >>> while flag < num: 5 ... print(li[flag]) 6 ... flag+=1 7 ... 8 1 9 a 10 1.2 11 [1, 2] 12 (1, 2) 13 {1: 2} 14 {1, 2}
带索引的遍历
>>> # 方法一 >>> li = ["one", "two", "three"] >>> num = 1 >>> for i in li: ... print("%d:%s" % (num, i)) ... num += 1 ... 1:one 2:two 3:three >>> >>> # 方法二:使用enumerate()函数 >>> for num, i in enumerate(li): ... print("%d:%s" % (num, i)) ... 0:one 1:two 2:three
1.3 列表的常用操作
创建
>>> # 方法一 >>> li = [1, 2, "a"] >>> >>> # 方法二:使用list()函数 >>> li = list() # 创建空列表 >>> li [] >>> list((1, "a")) # 传入元组 [1, ‘a‘] >>> list([1, 2]) # 传入列表 [1, 2] >>> list("abcd") # 传入字符串 [‘a‘, ‘b‘, ‘c‘, ‘d‘] >>> list({1:2, "a":3}) # 传入字典,仅返回键 [1, ‘a‘] >>> list({1, 2, 3}) # 传入集合 [1, 2, 3]
增
-
append():向列表中添加元素。
-
extend():将另一个列表中的元素添加至列表中。
-
insert(index, obj):在列表中的指定索引位置index插入元素obj。
示例:
1 >>> li = ["a", 1] 2 >>> li.append(2) 3 >>> li 4 [‘a‘, 1, 2] 5 >>> li.extend([3,4,5]) 6 >>> li 7 [‘a‘, 1, 2, 3, 4, 5] 8 >>> li.insert(1,"b") 9 >>> li 10 [‘a‘, ‘b‘, 1, 2, 3, 4, 5]
删
-
del:根据索引删除元素。
-
pop():删除最后一个元素,并会返回该元素。
-
remove():根据元素的值进行删除。
1 >>> li 2 [‘a‘, ‘b‘, 1, 2, 3, 4, 5] 3 >>> del li[0] 4 >>> li 5 [‘b‘, 1, 2, 3, 4, 5] 6 >>> li.pop() 7 5 8 >>> li 9 [‘b‘, 1, 2, 3, 4] 10 >>> li.remove(1) 11 >>> li 12 [‘b‘, 2, 3, 4]
改
通过索引来修改指定元素。
1 >>> li 2 [‘b‘, 2, 3] 3 >>> li[0] = "c" 4 >>> li 5 [‘c‘, 2, 3]
查
-
in、not in(Python中常用的查找方法)
- in:如果存在则返回True,反之返回False。
- not in:如果不存在则返回True,反之返回False。
-
index():list.index(obj, start, end) 与字符串中的用法一样,检查元素obj在索引(start和end)之间是否包含在列表list中,如果是,则返回str开始的索引;若不包含则返回一个异常。
-
count():list.count(obj, start, end) 与字符串中的用法一样,返回元素obj在索引(start和end)之间在列表list中出现的次数。
1 >>> li 2 [‘c‘, 2, 3] 3 >>> 2 in li 4 True 5 >>> 2 not in li 6 False 7 >>> li.index(3) 8 2 9 >>> li.append(2) 10 >>> li.count(2) 11 2 12 >>> li.count("c") 13 1 14 >>> # 查找最后一个2的索引值 15 >>> li = [1, 2, 5, 2, 4, 6] 16 >>> len(li) - 1 - (li[::-1].index(2)) 17 >>> 3
排序
- sort(key, reverse):将list按特定顺序排序(默认是从小到大),参数reverse设为True可改为倒序(即从大到小)。
- reverse():将list的元素按逆序排序。
1 >>> li = [2, 3, 1, 5] 2 >>> li.reverse() 3 >>> li 4 [5, 1, 3, 2] 5 >>> li.sort() 6 >>> li 7 [1, 2, 3, 5] 8 >>> li.sort(reverse=True) 9 >>> li 10 [5, 3, 2, 1]
自定义排序:sort()函数的参数key的作用
- 参数key是一个函数,这个函数的作用是从list中的每个元素中提取用于作为排序依据的属性。也就是说key是一个函数,输入是list的每一个元素,输出是用于排序的东西,默认的排序依据是list的单个元素。
- 举例:list = [(3, 66), (5, 3), (1, 23)],该list的元素是元组,默认来说,list.sort()后,list = [(1, 23), (3, 66), (5, 3)]。如果排序依据是每个元组的第二个元素,可以使用以下方法:
1 >>> list = [(3, 66), (5, 3), (1, 23)] 2 >>> # 方法一:编写函数 3 >>> def f(item): 4 ... return item[1] 5 ... 6 >>> list.sort(key=f) 7 >>> list 8 [(5, 3), (1, 23), (3, 66)] 9 10 11 >>> list = [(3, 66), (5, 3), (1, 23)] 12 >>> # 方法二:使用匿名函数 13 >>> list.sort(key=lambda item:item[1]) 14 >>> list 15 [(5, 3), (1, 23), (3, 66)]
2. 元组
2.1 元组介绍
Python中的元组与list相似,不同之处在于:
- 元组的元素不能修改。
- 元组使用小括号,列表使用中括号。
t = (1, "a", 1.2, [1, 2], (1, 2), {1: 2}, {1, 2})
2.2 元组的常用操作
创建
>>> # 方法一 >>> t = (1, "a", 1.2, [1, 2], (1, 2), {1: 2}, {1, 2}) >>> t (1, ‘a‘, 1.2, [1, 2], (1, 2), {1: 2}, {1, 2}) >>> >>> # 方法二:使用tuple()函数 >>> tuple() () >>> tuple((1, 2, 3)) (1, 2, 3) >>> tuple([1, 2, "c"]) (1, 2, ‘c‘) >>> tuple("abcd") (‘a‘, ‘b‘, ‘c‘, ‘d‘) >>> tuple({1: 2, 2: "a"}) (1, 2) >>> tuple({"a", 1}) (1, ‘a‘)
查
-
in、not in(Python中常用的查找方法)
- in:如果存在则返回True,反之返回False。
- not in:如果不存在则返回True,反之返回False。
-
index():tuple.index(obj, start, end) 与字符串中的用法一样,检查元素obj在索引(start和end)之间是否包含在元组tuple中,如果是,则返回str开始的索引;若不包含则返回一个异常。
-
count():tuple.count(obj, start, end) 与字符串中的用法一样,返回元素obj在索引(start和end)之间在元组tuple中出现的次数。
1 >>> # 访问元组的元素 2 >>> t = (1, 2, 3, 1, 2, 5) 3 >>> t[2:4] 4 (3, 1) 5 >>> t[::-1] 6 (5, 2, 1, 3, 2, 1) 7 >>> # 使用函数 8 >>> 5 in t 9 True 10 >>> 4 not in t 11 True 12 >>> t.index(2) 13 1 14 >>> t.count(2) 15 2
2.3 多维列表/元组的访问
1 >>> li = [(1, 2),[3, 4]] 2 >>> li[0][0] 3 1 4 >>> li[1][0] 5 3 6 >>> t = (("a", "b"), ["c", "d"]) 7 >>> t[1][1] 8 ‘d‘ 9 >>> t[0][1] 10 ‘b‘
以上是关于05. 列表元组的主要内容,如果未能解决你的问题,请参考以下文章