python——列表和元组的通用操作

通过索引访问元素

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(list1[0])
print(tuple1[1])

输出

1
2

索引从0开始

slice切片

slince() 内置函数

  • slice语法格式:[strt:end:step]
  • start 切片开始的索引(默认从0开始)
  • end 切片结束的索引(不包含end)默认为序列长度
  • step步长,默认为1。步长为负数时,表示从右向左切片
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list2[3:7])
print(list2[2:-2:2])

输出

[4, 5, 6, 7]
[3, 5, 7]

tuple2 = ('p', 'y', 't', 'h', 'o', 'n')
print(tuple2[0:3])
print(tuple2[1:5:3])

输出

('p', 'y', 't')
('y', 'o')

示例:利用切片判断一个字符串是否时回文
str1 = 'abcddbca' 是回文
str2 = 'abdcba' 不是回文

str = 'abcddbca'
if (str == str[::-1]):
    pritn('str is a palindrom')
else:
    print('str is not a palindrom')

输出

str is not a palindrom

查找与计数

list.index(x) x在列表中第一次出现的位置,如果不存在,抛出异常
list.count(x) x在列表中出现的次数,如果没有返回0

list3 = [1, 2, 3, 4, 5, 6]
print(list3.index(3))
print(list3.count(3))

输出

2
1

最大值、最小值和长度

python内置的全局函数max(),min(),len()
注意:列表或元组的元素类型必须相同

tuple3 = (1, 2, 2, 3, 4, 2, 5, 6)
tuple4 = ('p', 'y', 't', 'h', 'o', 'n')
print(max(tuple3))
print(min(tuple3))
print(max(tuple4))
print(min(tuple4))

输出

6
1
y
h

加法、乘法和in运算

  • list1 + list2 结果是两个列表或元组所包含的元素的总和
  • list * n 表示对应的列表或元组重复n次
  • x in list 判定列表中是否存在x元素,返回True或False
list4 = [1, 3, 5, 7]
list5 = [2, 4, 6, 8]
list6 = list4 + list5
list7 = list4 * 3
print(5 in list5)
print(list6)
print(list7)

输出

False
[1, 3, 5, 7, 2, 4, 6, 8]
[1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7]

序列封包和解包

  • 序列封包:把多个值赋给一个变量时,python将这些值封装成元组
  • 序列解包:将序列(列表或元组)直接赋值给多个变量。序列中的元素依次赋值给每个变量
vals = 3, 6, 9
print(vals)
print(type(vals))

输出

(3, 6, 9)
<class 'tuple'>

vals = 3, 6, 9
d, e, f = vals
print(d)
print(e)
print(f)

输出

3
6
9

同时使用序列封包和解包,可以实现赋值运算符将多个值赋值给多个变量
image.png

d, e, f = 2, 4, 6
print(d)
print(e)
print(f)

# 等价
# temp = 2, 4, 6
# d, e, f = temp

输出

2
4
6

序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。

>>>(a,b,c) = (9,8,20)
>>>b
8
>>>[a,b,c] = [10,20,30]
>>>b
20
>>>s = {'name':'jack','age':18,'job':'programmer','sex':'男'}
>>>a,b,c,d = s
>>>a
'name'
>>>b
'age'
>>>c
'job'

image.png

posted @ 2022-07-13 19:08  hcypeu  阅读(148)  评论(0)    收藏  举报