python学习——序列

Python支持一种数据结构的基本概念,名为容器。容器基本上就是可包含其他对象的对象。两种主要的容器是:

  • 序列(列表与元组)
  • 映射(字典)

在序列中,每个元素都有编号,而在映射中,每个元素都有名称(也叫键)。
还有一种既不是序列也不是映射的容器:集合(set)

一、序列

1.1通用的序列操作:

索引、切片、相加、相乘和成员资格检查。
其中列表的形式如[1, 2, 3]
元组的形式如

1.1.1索引

序列中的所有元素都有编号——从0开始递增。
可以使用索引来获取元素,适用于所有序列

# 序列
a = ['leo-zu', 23]
b = ['leopard', 22]
database = [a, b]
print(database[0][0])
print(a[1])
# -------------
# leo-zu
# 23

1.1.2切片

使用切片来访问特定范围内的元素。因此,可以使用两个索引,并用冒号分隔:

# 切片
a = 'leo-zu'
# 其中的第一个索引是包含第一个元素的编号
# 第二个索引是切片后的下一个元素的编号
# 第三个索引是步长,默认为1
print(a[4:6])
b = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(b[4:9])
print(b[4:9:2]) # 步长为2
# -----------------------------------
# zu
# [5, 6, 7, 8, 9]
# [5, 7, 9]

1.1.3序列相加

可使用加法运算符来拼接序列。但是不能拼接列表和字符串,虽然他们都是序列。

一般而言,不能拼接不同类型的序列

# 序列相加
a = [1, 2, 3, 4]
b = [5, 6, 7, 8, 9]
c = a + b
print(c)
# -----------------------------------
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

但是如果拼接字符串和列表,就会报错。

a = [1, 2, 3, 4]
b = 'leo-zu'
c = a + b
print(c)
# -------------------
# TypeError: can only concatenate list (not "str") to list

1.1.4乘法

将序列与数x相乘时,将重复这个序列x次来创建一个新的序列。

# 相乘
a = [1, 2]
b = 5
d = 'leo-zu' * b
c = a * b
print(c)
print(d)
# -----------------------------------
# [1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
# leo-zuleo-zuleo-zuleo-zuleo-zu

None、空列表和初始化

空列表是使用不包含任何内容的两个方括号[]表示
如果想要创建一个可包含10个元素的列表,但不包含任何有用的内容:[0] * 10
如果你想表示“什么都没有”的值,可以使用None,比如 [None] * 10

1.1.5成员资格

检查特定的值是否包含在序列中,可使用运算符in。它检查是否满足指定的条件,并返回相应的值:满足时返回true。

# 成员资格
a = [1, 2]
b = 0 in a
c = 2 in a
print(b)
print(c)
# ----------
# False
# True

# 成员资格
database = [
    ['leo-zu', '123'],
    ['leopard', '321']
]
username = input('UserName:')
password = input('password:')
if [username, password] in database:
    print("Access granted")
else:
    print("Failed")
# --------------------------------------
# UserName:leo-zu
# password:123
# Access granted

1.2列表

1.2.1函数list
由于不能像修改列表那样修改字符串,可以使用list函数。

# 函数list,将字符串转换为字符列表
a = list('leo-zu')
print(a)
# -------------------------------
# ['l', 'e', 'o', '-', 'z', 'u']

可将任何序列(不仅仅是字符串)作为ilist的参数
tips:要将字符列表转换为字符串,可以使用下面的表达式’’.join(somelist)。其中somelist是要转换的列表。

# ''.join(somelist),将字符列表转换为字符串
a = list('leo-zu')
b = ''.join(a)
print(b)
# -------------------------------
# leo-zu

下面介绍一下修改列表的方式:给元素赋值、删除元素、给切片赋值以及使用列表的方法。

# 修改列表的方式
a = list('leopard')

# 给元素赋值
a[3] = '-'
print(a)

# 删除元素,使用del语句
del a[6]
print(a)

# 给切片赋值,给列表切片赋值,必须要是列表
a[4:] = list('zu')
print(a)
# -------------------------------
# ['l', 'e', 'o', '-', 'a', 'r', 'd']
# ['l', 'e', 'o', '-', 'a', 'r']
# ['l', 'e', 'o', '-', 'z', 'u']

列表方法

# 修改列表的方式
a = list('leopard')
print('原始序列:', a)

# 1、append,用于将一个对象附加到列表末尾
a.append('a')
print('append:', a)

# 2、count,计算指定元素在列表中出现了多少次
d = a.count('a')
print('count:', d)

# 3、copy,赋值列表
b = a.copy()
c = a  # 常规赋值只是将另一个名称关联到列表
del a[7]  # 删除列表a的最后一个元素
print('原始序列:', a)
print('copy:', b)  # copy赋值不会受到影响
print('常规赋值:', c)  # 常规赋值,会受到影响

# 4、extend,可以同时将多个值附加到列表末尾
# 为此可将这些值组成的序列作为参供给方法extend
e = [1, 2, 3]
e.extend(a)
print('extend:', e)

# 5、index,在列表中查找指定值第一次出现的索引
print('index:', a.index('a'))

# 6、insert,将一个对象插入列表
a.insert(7, '-')
print('insert:', a)

# 7、pop,从列表中删除一个元素(默认为最后一个元素),并返回这一元素
f = a.pop()
print('pop:', f)

# 8、remove,删除第一个为指定值的元素
a.append('a')
a.remove('a')
print('remove:', a)

# 9、reverse,按相反的顺序排列列表中的元素
a.reverse()
print('reverse:', a)

# 10、sort,对列表就地排序
a.sort()
print('sort:', a)

# 11、clear,用于清空列表的内容
a.clear()
print('clear:', a)
# -------------------------------
# 原始序列: ['l', 'e', 'o', 'p', 'a', 'r', 'd']
# append: ['l', 'e', 'o', 'p', 'a', 'r', 'd', 'a']
# count: 2
# 原始序列: ['l', 'e', 'o', 'p', 'a', 'r', 'd']
# copy: ['l', 'e', 'o', 'p', 'a', 'r', 'd', 'a']
# 常规赋值: ['l', 'e', 'o', 'p', 'a', 'r', 'd']
# extend: [1, 2, 3, 'l', 'e', 'o', 'p', 'a', 'r', 'd']
# index: 4
# insert: ['l', 'e', 'o', 'p', 'a', 'r', 'd', '-']
# pop: -
# remove: ['l', 'e', 'o', 'p', 'r', 'd', 'a']
# reverse: ['a', 'd', 'r', 'p', 'o', 'e', 'l']
# sort: ['a', 'd', 'e', 'l', 'o', 'p', 'r']
# clear: []

1.3元组

不可修改的序列。只要将一些值用逗号分隔,就能自动创建一个元组。

# 元组的创建
a = 1, 2, 3
b = (1, 2, 3)
c = ()  # 空元组
d = (4,)  # 一个值的元组,必须要加逗号
print('a:', a)
print('b:', b)
print('空元组c:', c)
print('一个值的元组d:', d)
# ---------------
# a: (1, 2, 3)
# b: (1, 2, 3)
# 空元组c: ()
# 一个值的元组d: (4,)

下面还有一个函数tuple,可以将一个序列转换成元组。

# 将序列转换为元组
a = tuple('abc')
print(a)
# ---------------
# ('a', 'b', 'c')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值