python基本的数据类型 string list typle dict number set 可变类型 list dict 不可变类型 str num set
列表list []
- 列表追加单个 list.append(X)
- 列表追加多个 list.extend(t)
- 列表替换元素 list[1] = 80
- 列表删除元素 list.remove(x)
- 列表转字符串 join
lis = ['1','2','3','4','5']
s = " " .join (lis)
print(s) # 1 2 3 4 5
字典 dict {key1:value1,key2:value2,...,}
- 字典的删除 dict.pop
- 字典返回键视图 keys
- 字典返回值视图 values
- 字典返回键值对 items
字符串 str
字符串的查找 find()
字符串替换 replace
str.replace(old,new[,count])
注:count表示替换old子字符串的个数,如果count被忽略,则替换所有old子字符串
集合set
常考题目
列表转字符串:将str1 = '_a_bc' 变成 str2 = 'abc'
思路:1.join 2.for循环 3.加*
str1 = '_a_bc'
list2 = []
list1 = list(str1)
for i in list1:
if i != '_':
list2.append(i)
print(list2)
print(*list2) # a b c
# join
str2 = ''.join(list2)
print('str2:', str2) # str2: abc
s = ""
for i in lis:
s = s + str(i)
print('s:', s) # s: abc
列表转字典
思路:用字典推导式或for循环
lis = ['a', 'b', 'c']
dict1 = {}
for i,j in enumerate(lis):
dict1[i] = j
print('dict1',dict1) # dict1 {0: 'a', 1: 'b', 2: 'c'}
# 字典推导式
res = {k: v for k,v in enumerate(lis)}
print('res',res) # res {0: 'a', 1: 'b', 2: 'c'}
字符串转列表、列表转字典
原来:cook_str = "A=a;B=b;C=c;D=d" 预期:{'A':'a','B':'b','C':'c'}
思路: 先用split 得到列表,再用字典推导式。 语法: {key:value for i in xx}
cook_str = "A=a;B=b;C=c;D=d"
res1 = cook_str.split(';')
print(res1) # ['A=a', 'B=b', 'C=c', 'D=d'] 得到列表
# 将列表转化成字典,字典推导式
res2 = {i.split('=')[0]: i.split('=')[1] for i in res1}
print(res2) # {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}
列表的去重
例如: 输入 1 1 2 3 4 5 5 输出 1 2 3 4 5
lis = input("请输入").split()
def func(lis):
mylist = []
for i in lis:
if i not in mylist:
mylist.append(i)
result = ''.join(mylist)
return result
print(func(lis))
# output
请输入1 1 2 3 4 5 5
12345
列表中找出只有一个的元素
例如: 输入 1 2 3 3 5 5 8 8 9 输出 1 2 9
list1 = input("请输入").split() # 例如输入 1 2 3 3 5 5 8 8 9
# 计算出现次数
list2 = [list1.count(i) for i in list1]
print(list2) # 出现次数[1, 1, 2, 2, 2, 2, 2, 2, 1]
for n in list2:
if n != 1: #
m = list2.index(n) # 只出现了一次的列表的值
p = list1.pop(m) # 删除只出现一次的字符
print(''.join(list1)) # 129
字符串中找到第一个只出现一次的字符
str = input('请输入字符串')
len_str = len(str)
for i in range(len_str):
count = 0
for j in range(len_str):
if str[j] == str[i]:
count += 1
if count == 1:
print(i,str[i])