第三章 python数据类型-列表与元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。只要不涉及元素的改变,列表和元组的用法是一样的。

3.1 列表基本操作

3.1.1 通过正向索引获取列表元素

#!usr/bin/python3
s = ["haha10", "hehe10", "xixi10", "heihei10"]
print(s[0])
print(s[1])
print(s[2])
print(s[3])

结果:

haha10
hehe10
xixi10
heihei10

3.1.2 通过反向索引获取列表元素

#!usr/bin/python3
s = ["haha10", "hehe10", "xixi10", "heihei10"]
print(s[-1])
print(s[-2])
print(s[-3])
print(s[-4])

结果:

heihei10
xixi10
hehe10
haha10

3.1.3 列表截取

#!/usr/bin/python3

list = ["abcd", 123 , 2.2, "haha", 70.2 ]

print(list[1:3])
print(list[2:])
print(list[-3:-1])

结果:

[123, 2.2]
[2.2, 'haha', 70.2]
[2.2, 'haha']

3.1.4 拼接列表

#!usr/bin/python3
lists = ["kdfds", 123 , 2.2, "haha", 70.2]
lists2 = ["haha3", 3232]

print(lists * 2)
print(lists + lists2)

结果:

['kdfds', 123, 2.2, 'haha', 70.2, 'kdfds', 123, 2.2, 'haha', 70.2]
['kdfds', 123, 2.2, 'haha', 70.2, 'haha3', 3232]

3.1.5 in 运算符

判断某个元素是否在列表中

#!usr/bin/python3
a = ["haha", "hehe", "xixi", "heihei"]
if "haha" in a:
    print("haha")

if "123" not in a:
    print("123")

结果:

haha
123

3.1.6 获取列表元素个数

#!usr/bin/python3
lists = ["abcd", 123 , 2.2, "haha", 70.2]
print(len(lists))

结果:

5

3.1.7 获取列表最大最小值

#!usr/bin/python3
lists = ["a", "b", "c", "d"]
print("max = ", max(lists))
print("min = ", min(lists))

max =  d
min =  a

3.1.8 序列封包与序列解包

python提供了序列封包与序列解包功能,何为序列封包和序列解包呢?

序列封包:程序把多个值赋给一个变量时,python会自动将多个值封装成元组,这种功能称为序列封包

序列解包:程序允许将序列(元组或列表)直接赋值给多个变量,此时序列的各元素会被依次赋值给每个变量(要求序列的元素个数与变量的个数相等),这种功能称为序列解包

#!usr/bin/python3
vals = 10, 20, 30
print("vals = ", vals) #输出的是元组,这就是序列封包
print("type = ", type(vals))

结果:

vals =  (10, 20, 30)
type =  <class 'tuple'>

#!usr/bin/python3
#序列解包的功能
tuples = (2, 3)
a, b = tuples
print("a = ", a)
print("b = ", b)

lists = ["haha", "hehe"]
c, d = lists
print("c = ", c)
print("d = ", d)

结果:

a =  2
b =  3
c =  haha
d =  hehe

序列解包时也可以只解出部分变量,剩下的依然是用列表变量保存,如果这样用的话,python

允许在左边被赋值的变量之前添加*,那么该变量就代表一个列表,可以保存多个元素,如下所示:

#!usr/bin/python3
lists = ["haha", "hehe", "heihei", "xixi"]
*a, b = lists
print("a = ", a)
print("b = ", b)

结果:

a =  ['haha', 'hehe', 'heihei']
b =  xixi

3.1.9 将元组、range转化为列表

#!usr/bin/python3
tuples = (3, 4, 5)
lists = list(tuples) #将元组转换为列表
print("lists = ", lists)

a_range = range(1, 5)
lists2 = list(a_range) #将a_range转换为列表
print("lists2 = ", lists2)

b_range = range(1, 10, 3) #参数3是步长
lists3 = list(b_range)
print("lists3 = ", lists3)

结果:

lists =  [3, 4, 5]
lists2 =  [1, 2, 3, 4]
lists3 =  [1, 4, 7]

与list()对应,python也提供了一个tuple()函数,用于将列表、区间(range)转换为元组

#!usr/bin/python3
lists = ["haha", "hehe", "heihei", "xixi"]
tuples = tuple(lists)
print("tuples = ", tuples)

a_range = range(1, 5)
tuples2 = tuple(a_range)
print("tuples2 = ", tuples2)

b_range = range(1, 10, 2)
tuples3 = tuple(b_range)
print("tuples3 = ", tuples3)

结果:

tuples =  ('haha', 'hehe', 'heihei', 'xixi')
tuples2 =  (1, 2, 3, 4)
tuples3 =  (1, 3, 5, 7, 9)

3.1.10更新列表

#!usr/bin/python3
lists = ["abcd", 123 , 2.2, "haha", 70.2]
print("before: ", lists)
lists[0] = "haha"
print("after: ", lists)

结果:

before:  ['abcd', 123, 2.2, 'haha', 70.2]
after:  ['haha', 123, 2.2, 'haha', 70.2]

3.1.11 添加元素append()、extend()、insert()

#!usr/bin/python3
lists = ["abcd", 123 , 2.2, "haha", 70.2]
print("before: ", lists)
lists.append("heihei")
print("after: ", lists)

结果:

before:  ['abcd', 123, 2.2, 'haha', 70.2]
after:  ['abcd', 123, 2.2, 'haha', 70.2, 'heihei']

注意:列表追加元组或列表时,是将元组和列表当成一个元素追加进去的,如下所示:

#!usr/bin/python3
a = ["haha", "hehe", "heihei"]
b = (1, 2, 4)
a.append(b)
print(a)

b = ["a", "b", "c"]
a.append(b)
print(a)

结果:

['haha', 'hehe', 'heihei', (1, 2, 4)]
['haha', 'hehe', 'heihei', (1, 2, 4), ['a', 'b', 'c']]

很多时候这不是我们想要的,我们想要的是追加列表中的元素,这种情况下,需要用extend()方法:

#!usr/bin/python3
a = ["haha", "hehe", "heihei"]
b = (1, 2, 3)
c = [4, 5, 6]

a.extend(b)
print("a = ", a)
a.extend(c)
print("a = ", a)

结果:

a =  ['haha', 'hehe', 'heihei', 1, 2, 3]
a =  ['haha', 'hehe', 'heihei', 1, 2, 3, 4, 5, 6]

如果希望在列表中间插入元素,则可使用insert()函数

#!usr/bin/python3
a = ["haha", "hehe", "heihei"]
b = [1, 2, 3]

a.insert(2, "xixi")
print("a = ", a)

a.insert(2, b)
print("a = ", a)

结果:

a =  ['haha', 'hehe', 'xixi', 'heihei']
a =  ['haha', 'hehe', [1, 2, 3], 'xixi', 'heihei']

3.1.12 删除元素

#!usr/bin/python3
a = ["haha", "hehe", "heihei", 1, 2, 3]
print("before: ", a)
del a[0] #删除下标为0的元素
print("after1: ", a)

del a[1:3] #删除下标为1,2的元素,不包括3
print("after2: ", a)

结果:

before:  ['haha', 'hehe', 'heihei', 1, 2, 3]
after1:  ['hehe', 'heihei', 1, 2, 3]
after2:  ['hehe', 2, 3]

#!usr/bin/python3
lists = ["a", "b", "c", "d11"]
print("before: ", lists)
lists.remove("a")
print("after:", lists)

结果:

before:  ['a', 'b', 'c', 'd11']
after: ['b', 'c', 'd11']

3.1.13 清空列表clear

#!usr/bin/python3
lists = [4,5,2,9]
print("before: ", lists)
lists.clear()
print("after: ", lists)

结果:

before:  [4, 5, 2, 9]
after:  []

3.1.14 count()函数

用于获取某个元素在列表中出现的次数

#!usr/bin/python3
a = [1, 2, 3, 4, 2, 2]
print("count = ", a.count(2))

结果:

count =  3

3.1.15 index(x)函数,获取第一个值为 x 的元素的索引

#!usr/bin/python3
lists = ["a","b","c","d"]
print(lists.index("b"))

结果:

1

3.1.16 pop()函数

python的列表可以当作一个栈,栈有先进后出的特点,非常灵活,pop()函数用于出栈操作,返回最后加入的元素

#!usr/bin/python3
a = []
a.append("haha")
a.append("hehe")
a.append("heihei")

print(a.pop()) #最后一个加入的heihei出栈
print(a.pop()) #hehe出栈

结果:

heihei
hehe

3.1.17 反向遍历列表

#!usr/bin/python3
lists = ["a", "b", "c", "d"]
lists.reverse()
print(lists)

结果:

['d', 'c', 'b', 'a']

3.1.18 对列表进行升序排序

#!usr/bin/python3
lists = [4,5,2,9]
print("before: ", lists)
lists.sort()
print("after: ", lists)

结果:

before:  [4, 5, 2, 9]
after:  [2, 4, 5, 9]

如果我们希望自定义排序,还可以通过key的用法,并搭配reverse参数,默认为从小到大排序,如果reverse=True, 则回反转成从大到小排序,如下所示:

#!usr/bin/python3
a = ["haha1", "he", "heihei", "xixi"]
print("before: ", a)
a.sort(key=len) # 使用len()函数作为排序依据,即按照字符串的长度排序
print("after: ", a)

a.sort(key=len,reverse=True)# 使用len()函数作为排序依据,即按照字符串的长度从大到小排序
print("after: ", a)

结果:

before:  ['haha1', 'he', 'heihei', 'xixi']
after:  ['he', 'xixi', 'haha1', 'heihei']
after:  ['heihei', 'haha1', 'xixi', 'he']

3.1.19 遍历列表

#!usr/bin/python3
lists = [1, 2, 3, 4]
for item in lists:
    print("item = ", item)

结果:

item =  1
item =  2
item =  3
item =  4

3.1.19.1 使用迭代器iter():

#!/usr/bin/python3
list = [1, 2, 3, 4]
it = iter(list)
for x in it:
    print(x)

结果:

1
2
3
4

3.1.19.2 使用next():

#!/usr/bin/python3
list = [1, 2, 3, 4]
it = iter(list)  # 创建迭代器对象
print(next(it))

结果:

1

3.1.19.3 使用range

#!/usr/bin/python3
lists = [1, 2, 3, 4]
for i in range(len(lists)):
    print(lists[i])

结果:

1
2
3
4
 

3.2 元组基本操作

元组中的元素类型也可以不相同

#!usr/bin/python3
tups = (1, 2, 3, "haha", "hehe", 6, 7 )
print("tups[1] = ", tups[1])
print("tups[2:5] = ", tups[2:5])

结果:

tups[1] =  2
tups[2:5] =  (3, 'haha', 'hehe')

3.2.1 元组拼接

#!usr/bin/python3
t = ("haha1", "hehe")
t2 = (3,2)
t3 = t + t2
print(t3)

结果:

('haha1', 'hehe', 3, 2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中使用列表元组来存储和操作数据,它们都是序列类型的数据结构。 列表是可变的,可以在其中添加、删除、修改元素,而元组是不可变的,一旦创建后就不能修改其中的元素。 下面是列表元组的一些常用操作: 创建列表元组: ``` #创建一个列表 list1 = [1, 2, 3, 4, 5] #创建一个元组 tuple1 = (1, 2, 3, 4, 5) ``` 访问列表元组中的元素: ``` #访问列表中的第一个元素 print(list1[0]) #访问元组中的第一个元素 print(tuple1[0]) ``` 修改列表中的元素: ``` #将列表中的第一个元素修改为10 list1[0] = 10 print(list1) ``` 合并列表元组: ``` #合并两个列表 list2 = [6, 7, 8] list3 = list1 + list2 print(list3) #合并两个元组 tuple2 = (6, 7, 8) tuple3 = tuple1 + tuple2 print(tuple3) ``` 删除列表中的元素: ``` #删除列表中的第一个元素 del list1[0] print(list1) ``` 获取列表元组的长度: ``` #获取列表的长度 print(len(list1)) #获取元组的长度 print(len(tuple1)) ``` 遍历列表元组: ``` #遍历列表 for i in list1: print(i) #遍历元组 for i in tuple1: print(i) ``` 判断元素是否在列表元组中: ``` #判断元素是否在列表中 if 1 in list1: print('1 is in list1') #判断元素是否在元组中 if 1 in tuple1: print('1 is in tuple1') ``` 获取列表中的最大值和最小值: ``` #获取列表中的最大值 print(max(list1)) #获取列表中的最小值 print(min(list1)) ``` 以上是列表元组的一些基本操作,Python还提供了许多其他操作和方法,可以根据需求选择使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值