python学习笔记

140 阅读2分钟

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])