【Python】数据处理-tuple/list/dict/str/set

一、元组(tuple)

tuple_a = (1, 2, 3, 4, 5)

# 1、index(元素):从tuple中找出某个值第一个匹配项的索引位置
res1 = tuple_a.index(1)

# 2、count(元素):返回元素出现的次数
res2 = tuple_a.count(1)

二、列表(list)

list_a = [1, 2]

# 1、append(元素):向list添加数据
list_a.append(3)  # 向list添加int类型数据
list_a.append('a')  # 向list添加str类型数据
list_a.append((1, 2))  # 向list添加tuple类型数据
list_a.append([1, 2])  # 向list添加list类型数据
list_a.append({'c': 3})  # 向list添加dict类型数据

# 2、index(元素):从list中找出某个值第一个匹配项的索引位置
res1 = list_a.index(3)

# 3、pop(索引):通过元素索引删除list中的元素
list_a.pop(1)

# 4、remove(元素):如果list中存在该元素,则删除,如不存在,则异常:ValueError: list.remove(x): x not in list
list_a.remove(1)

# 5、copy():复制list
list_2 = list_a.copy()

# 6、extend(list):在list末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list_1 = [4, 3]
list_1.extend([1, 2, 3, 4])

# 7、insert(索引, 元素):将元素插入list中的指定索引位置
list_1.insert(2, 33)

# 8、count(元素):返回元素出现的次数
count = list_1.count(1)

# 9、sort():list排序
list_3 = [2, 54, 17, 31, 2, 33, 5, 6, 74, 22, 3, 4]
list_3.sort()

# 10、reverse():对list元素进行反向排序
list_4 = [1, 2, 3, 4, 5, 6]
list_4.reverse()

# 11、根据索引取值
res3 = list_4[0]

# 12、enumerate(list):以对象返回可遍历的(索引, 值) 元组数组
kv = enumerate(list_1)

# 13、clear():清空list(删除所有元素)
list_1.clear()

 三、字典(dict)

dict1 = {'user': 'runoob', 'num': [1, 2, 3]}
# 1、copy()  # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
dict2 = dict1
dict3 = dict1.copy()  

# 2、deepcopy():深拷贝
dict2 = copy.deepcopy(dict1)

# 3、修改data数据
dict1['user'] = 'root'  # 修改一级目录
dict1['num'].remove(1)  # 修改二级目录

# 4、pop(key):删除字典给定键 key 所对应的值
dict1.pop('user')

# 5、update(dict2):把字典dict2的键/值对更新到dict里
dict2 = {'password': '123456'}
dict1.update(dict2)

# 6、get(dict2):返回指定键的值,如果键不在字典中返回default值
res = dict1.get('user')
res = dict1['password']

# 7、keys():以列表返回一个字典所有的键
keys = dict1.keys()

# 8、values():以列表返回字典中的所有值
values = dict1.values()

# 9、items():以列表返回可遍历的(键, 值) 元组数组
res = dict1.items()

# 10、popitem():返回并删除字典中的最后一对键和值
res = dict1.popitem()

# 11、clear():删除字典内所有元素
dict1.clear()

# 12、fromkeys(元组):创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
# fromkeys 方法只用来创建新字典,不负责保存。当通过一个字典来调用 fromkeys 方法时,如果需要后续使用一定记得给他复制给其他的变量。
seq = ('key1', 'key2', 'key3')
# 不指定默认的键值,默认为 None
new_dict = dict.fromkeys(seq)
# 指定默认的键值
new_dict = dict.fromkeys(seq, 10)

 四、字符串(str)

str1 = '   ab c d f   '

# 1、去除字符串空格
# (1)去除字符串首尾空格
new_str = str1.strip()
# (2)去除字符串开头空格
new_str = str1.lstrip()
# (3)去除字符串结尾空格
new_str = str1.rstrip()
# (4)去除字符串全部空格1
new_str = str1.replace(" ", "")
# (5)去除字符串全部空格2
new_str = "".join(str1.split())

# 2、字符串中某个字符出现的次数_方法1
str1 = 'abcbabsnuskabsndjxabndxc'
count_str1 = str1.count('a')
# 字符串中某个字符出现的次数_方法2
count_str2 = len(str1) - len(str1.replace('a', ''))

# 3、split(字符/字符串):以某个字符/字符串分割,返回list
str2 = '1,2,3,4,5,6'
li = str2.split(',')

五、集合(set)

list_1 = [1, 3, 4, 2, 3, 4, 7, 8, 9, 0]

# 1、去重
set_1 = set(list_1)  # 集合是无序的
print(set_1, type(set_1))

set_2 = set([2, 6, 4, 11, 22])
print(set_1, set_2)

# 2、交集
print(set_1.intersection(set_2))
print(set_1 & set_2)

# 3、并集
print(set_1.union(set_2))
print(set_1 | set_2)

# 4、差集 in list_1 but not in list_2
print(set_1.difference(set_2))
print(set_1 - set_2)
print(set_2.difference(set_1))
print(set_2 - set_1)

# 5、对称差集
print(set_1.symmetric_difference(set_2))
print(set_2 ^ set_1)

# 6、子集
set_3 = set([1, 3, 7])
print(set_3.issubset(set_1))  # 是否被包含,返回True或者False
print(set_3 <= set_1)
print(set_1.issuperset(set_3))  # 是否包含,返回True或者False
print(set_1 >= set_3)

# 7、判断是否有交集,返回True或者False
set_4 = set([5, 6, 8])
print(set_4.isdisjoint(set_1))

# 8、添加单个
set_4.add(99)
print(set_4)

# 9、添加多个
set_4.update([1, 2])
print(set_4)

# 10、删除,不存在会报错
set_4.remove(99)
print(set_4)

# 11、删除,不存在不会报错
set_4.discard(99)
print(set_4)

# 12、随机删除,并返回删除的元素
print(set_4.pop())
print(set_4)

六、扩展

# 求1-100的和
sum1 = sum([i for i in range(1, 101)])
sum2 = sum(list(range(1, 101)))

 

posted @ 2022-09-14 14:17  键上一指禅  阅读(69)  评论(0编辑  收藏  举报