python常用数据操作
一、字符串
1、字符串替换:replace
str = '[{"jobName":"ExpireSendSmsJob"},{"jobName":"LoanOverSendSmsJob"}] ' repl_str = str.replace('jobName','任务名称') print('替换前',str) print('替换后',repl_str)
输出:
替换前 [{"jobName":"ExpireSendSmsJob"},{"jobName":"LoanOverSendSmsJob",}]
替换后 [{"任务名称":"ExpireSendSmsJob"},{"任务名称":"LoanOverSendSmsJob",}]
2、字符串中字符出现次数:count
strs = 'Hello Hello'
counts = {}
for i in strs:
counts[i] = strs.count(i)
for key in counts:
print(f'"{key}":{counts[key]}次')
输出:
"H":2次
"e":2次
"l":4次
"o":2次
" ":1次
3、字符串反转:reversed 及切片
#方法一 reversed
a = 'abc'
b = reversed(a) # reversed object迭代器
print("".join(b))
#方法二 切片,下标从0开始,前闭后开,步长默认1
a = 'abc'
print(a[::-1])
输出:
cba
cba
二、列表操作
1、列表去重:set
lists = ["A", "B", "C", "D", 'A'] repl_lists = list(set(lists)) print('替换前', lists) print('替换后',repl_lists) # 方法二(循环,有序): news_list = [] for i in lists: if i not in news_list: news_list.append(i) print('有序:',news_list)
输出:
替换前 ['A', 'B', 'C', 'D', 'A']
替换后 ['D', 'A', 'B', 'C']
有序: ['A', 'B', 'C', 'D']
2、列表取交集、差集、并集
lst1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
lst2 = [-3, -2, -1, 0, 1]
lst3 = list(set(lst1) & set(lst2)) # 或者用“intersection"也是取交集,还有lst3 = [j for j in lst1 if j in lst2]
lst4 = list(set(lst1).intersection(set(lst2))) # 或者用 “|”也是取并集
lst5 = list(set(lst1).difference(set(lst2))) # 或者用 “-”也是取差集
print(lst3)
print(lst4)
print(lst5)
输出:
[0, 1]
[0, 1]
[2, 3, 4, 5, 6, 7, 8, 9]
3、列表简单计算、变字典
list1=[0,1,2,3,4,5]
list2= {i:i*i for i in list1}
list3=[[i,i*i] for i in list1]
print(list2)
print(list3)
输出:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
[[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25]]
4、字符串以空格分割并去掉多余空格
s = ' 0 0/3 * * * ? '
l = s.split(' ')
print(l)
t =[i for i in l if i]
print(t)
# 方法二(while+remove):
while '' in l:
l.remove('')
输出:
['', '', '0', '0/3', '*', '', '*', '*', '?', '']
['0', '0/3', '*', '*', '*', '?']
5、列表打包、解压:zip
a = ['a','b','c','d','e']
b = (1,2,3,4,5,6,7)
ob = zip(a,b) # 转为一个对象,长度由最短的参数决定
print(ob)
print(list(ob)) # 转为列表,元素为元组
a1,b1=zip(*zip(a,b)) # 解压
print(a1)
print(b1)
print(type(a1))
输出:
<zip object at 0x0000022B57AB9F80>
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]
('a', 'b', 'c', 'd', 'e')
(1, 2, 3, 4, 5)
<class 'tuple'>
6、列表排序
list = ['tom','jan','marry','coco']
list.sort() # 按字母排序
print(list)
list.sort(key=lambda x:len(x)) # 按字符串升序排序
print(list)
list = ['tom','jan','marry','coco']
list.sort(key=lambda x:len(x),reverse=True) # 按字符串长度降序排
print(list)
输出:
['coco', 'jan', 'marry', 'tom']
['jan', 'tom', 'coco', 'marry']
['marry', 'coco', 'tom', 'jan']