Python中可迭代数据类型

有序集合

有序的集合包括:列表、字符串以及元组。
对于任意Python序列可应用的运算:

运算名运算符解释
长度len(sequence)返回序列的长度。
索引访问sequence[i]返回索引 i 处的元素。
切片sequence[i:j]返回从索引 ij 的子序列。
成员检查item in sequence检查 item 是否存在于序列中。
成员非存在检查item not in sequence检查 item 是否不存在于序列中。
序列连接sequence + other连接两个序列。
序列重复sequence * n将序列重复连接 n 次。
最小值min(sequence)返回序列中的最小元素。
最大值max(sequence)返回序列中的最大元素。
索引查找sequence.index(item)返回 item 第一次出现的索引。
计数sequence.count(item)返回序列中 item 的出现次数。

列表(list)

列表可以包含不同类型的元素,是零个或多个指向Python数据对象引用的集合。[...]

方法名用法解释
appendlist.append(x)在列表末尾添加元素 x
extendlist.extend(iterable)将可迭代对象的元素追加到列表。
insertlist.insert(i, x)在指定位置 i 插入元素 x
removelist.remove(x)移除列表中第一个值为 x 的元素。
poplist.pop([i])移除并返回指定位置 i 处的元素,如果未指定则移除并返回最后一个元素。
indexlist.index(x[, start[, end]])返回列表中第一个值为 x 的元素的索引,可选范围为 [start, end]
sortlist.sort(key=None, reverse=False)对列表进行排序。
reverselist.reverse()反转列表中的元素。
copylist.copy()创建列表的浅拷贝。
deldel list[i]del list[i:j]删除列表中指定位置的元素或切片。
listlist(iterable)将可迭代对象转换为列表。

列表推导式
列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。

列表推导式的方括号内包含以下内容:一个表达式,后面为一个 for 子句,然后,是零个或多个 for 或 if 子句。结果是由表达式依据 for 和 if 子句求值计算而得出一个新列表。

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

# 等价于
>>>combs = []
>>>for x in [1,2,3]:
...    for y in [3,1,4]:
...        if x != y:
...             combs.append((x, y))
>>>combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

字符串(string)

由零个或多个字符组成的有序集合。列表和字符串的区别在于,列表能被修改,字符串则不能。'',""

方法名用法解释
capitalizestr.capitalize()返回字符串的首字母大写版本。
casefoldstr.casefold()返回字符串的大小写折叠版本。
endswithstr.endswith(suffix[, start[, end]])如果字符串以指定的后缀结尾,则返回 True。
findstr.find(sub[, start[, end]])返回子字符串的第一个匹配项的索引,如果未找到则返回 -1。
formatstr.format(*args, **kwargs)格式化字符串。
isalnumstr.isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字,则返回 True。
isalphastr.isalpha()如果字符串至少有一个字符并且所有字符都是字母,则返回 True。
isdigitstr.isdigit()如果字符串只包含数字,则返回 True。
joinstr.join(iterable)在可迭代对象的元素之间插入字符串。
lowerstr.lower()返回字符串的小写版本。
replacestr.replace(old, new[, count])用新字符串替换旧字符串。
splitstr.split([sep[, maxsplit]])使用指定的分隔符拆分字符串。
stripstr.strip([chars])返回去除字符串两侧(开头和结尾)指定字符集的版本。
titlestr.title()返回标题化(每个单词的首字母大写)的字符串。
upperstr.upper()返回字符串的大写版本。

元组(tuple)

元组相当于不能被修改的列表,拥有列表除了修改元素外的其他方法和运算。(,)

无序集合

无序集合包括:集和字典

集合(set)

集是由零个或多个不可修改的Python数据对象组成的无序集合。空集合由set()表示。

集合支持的运算

运算名运算符解释
并集``
交集&返回两个集合的交集。
差集-返回前一个集合中存在而后一个集合中不存在的元素。
对称差集^返回两个集合中不重复的元素。
包含关系<=判断一个集合是否是另一个集合的子集。
包含关系>=判断一个集合是否是另一个集合的超集。
不相交集合isdisjoint()判断两个集合是否没有交集。
成员in询问集合中是否有某元素

集合提供的方法

方法名用法解释
add()set.add(element)将元素添加到集合。
remove()set.remove(element)移除集合中的指定元素,如果不存在则引发错误。
discard()set.discard(element)移除集合中的指定元素,如果不存在则不引发错误。
pop()set.pop()移除并返回集合中的任意元素,如果集合为空则引发错误。
clear()set.clear()移除集合中的所有元素。
copy()set.copy()返回集合的浅拷贝。
union()set1.union(set2)返回两个集合的并集。
intersection()set1.intersection(set2)返回两个集合的交集。
difference()set1.difference(set2)返回前一个集合中存在而后一个集合中不存在的元素。
symmetric_difference()set1.symmetric_difference(set2)返回两个集合中不重复的元素。
issubset()set1.issubset(set2)判断一个集合是否是另一个集合的子集。
issuperset()set1.issuperset(set2)判断一个集合是否是另一个集合的超集。
isdisjoint()set1.isdisjoint(set2)判断两个集合是否没有交集。

字典(dictionary)

字典是一组键-值对的集合,其中每个键必须是唯一的。

支持的运算符

运算名运算符解释
[]myDict[k]返回与k相关联的值,可访问值也可以 修改值和创建键值对
inkey in adict如果键key在字典中,返回True否则返回False
defdef adict[key]从字典中删除key的键值对

支持的方法

方法名用法解释
clear()my_dict.clear()清空字典中的所有键值对。
copy()new_dict = my_dict.copy()创建字典的浅拷贝。
fromkeys()new_dict = dict.fromkeys(keys, value)创建一个新字典,使用指定的键和默认值(可选)。
get()value = my_dict.get(key, default)获取指定键的值,如果键不存在,则返回默认值。
items()items = my_dict.items()以元组的形式返回字典中所有键值对的视图。
keys()keys = my_dict.keys()返回字典中所有键的视图。
pop()value = my_dict.pop(key, default)弹出指定键的值,如果键不存在,则返回默认值。
popitem()key, value = my_dict.popitem()弹出并返回字典中的任意键值对。
setdefault()value = my_dict.setdefault(key, default)获取指定键的值,如果键不存在,则设置默认值并返回。
update()my_dict.update(other_dict)将其他字典中的键值对更新到当前字典。
values()values = my_dict.values()返回字典中所有值的视图。
  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值