05. 列表元组

Posted juno3550

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05. 列表元组相关的知识,希望对你有一定的参考价值。

1. 列表

1.1 列表介绍

1.2 列表的循环遍历

1.3 列表的常用操作

2. 元组

2.1 元组介绍

2.2 元组的常用操作

2.3 多维列表/元组的访问

 

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. 列表元组的主要内容,如果未能解决你的问题,请参考以下文章

python 05 列表 元组 (序列)

如何从片段内的列表视图打开链接网址?

python之路-05-列表或元组

Python - 验证列表中的元组具有相同的长度

在与整数配对的所有数字列表中的元组内创建一个列表[重复]

Python-05-元组_tuple