1 判断

1,在Python中,find()函数并不是用于列表的搜索函数。find()是字符串类型的方法,用来查找子字符串在父字符串中的位置。
如果你尝试使用find()在列表中查找元素,它会导致错误,

2,字符串和列表都是序列类型。
image
image
image

3,列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],则 lst[0:100]的结果是正确的
指定的结束索引大于列表的实际长度,Python 会自动将结束索引限制为列表的最大长度。

4,a = input().split(" ")
for i in a.sort():

这一行运行错误,会返回none

print(i,end=" ")
5,
s2 = " ".join(lst)最后一个数字后面没有空格,也就是用空格将序列里的元素来连接起来

6,删除元素时改变了列表的大小,从而影响了迭代的行为。
lst=[34,6,7,0,0,0,9]
n=0
for i in lst:
if i==0:
lst.remove(i)
n+=1
print(n)
删除元素后会生成新列表新索引
7,image

8,image
10,image
11,集合(set)是 无序的,这意味着集合中的元素没有固定的顺序。每次迭代时,元素的顺序可能不同。因此,虽然集合中包含 {11, 12, 3, 4} 这些元素,但在不同的运行中,迭代的顺序可能会有所不同。
12,image
13,

dic={"John" : 15264771766,"Kate" : 13063767486,"Rose" : 15146046882,"Chise" : 13606379542,"Jason" : 13611987725}
reverseDic={v:k for k,v in dic.items()}
print(reverseDic[13063767486])

14,dic1.update(dic2) 会将 dic2 中的所有键值对添加到 dic1 中。
如果 dic2 中的键已经存在于 dic1 中,则会更新该键的值;如果 dic2 中的键在 dic1 中不存在,则会新增该键值对。
15,语句 dic3 = {**dic1, **dic2} 采用了 字典解包 的语法,将 dic1 和 dic2 的键值对合并到一个新的字典 dic3 中。
字典解包的行为是:如果两个字典中有相同的键,那么后面的字典会覆盖前面字典中的值。因此,dic2 中的 ONE 键值会覆盖 dic1 中的 ONE 键值。

2 单选

1, max((3, 5, 1,7, 4)) 即求元组的最大值

2,当我们将字符串 "abcd" 作为参数传递给 list() 时,list() 会将字符串中的每个字符提取出来,并将它们放入一个列表中。

3,range、map、zip、filter、reversed、enumerate等迭代对象具有( )求值的特点。

惰性

4,
A. append()、B. extend() 和 C. insert() 都是列表(list)的方法,不能作用于元组(tuple)对象,因为元组是不可变对象,不能修改其内容。
D. len() 是一个内置函数,可以作用于任何序列类型

5,image

大括号默认为字典,set()才能创建集合

6,remove() 是用来删除列表中的元素的,
del删除字典元素或字典

7,D错误
image

3 多选

1

lst = [1, 2, 3, 4, 5]
lst[1:3] = [10, 20]  # 替换索引1到2的元素
print(lst)  # 输出: [1, 10, 20, 4, 5]

2,image
3,image

4 填空

5 编程

1),输入

#中括号建列表和list函数建列表
 s=list(map(int,input().split()))
 
l=[s[i] for i in range(-1,-len(s)-1,-1)]
#逆序输出  开始索引,结束索引还有步长

l=s[::-1]
#逆序输出


 s = [l[i] for i in range(len(l)) if l[i] > ans]
s=[i for i in l if i>(sum(l)/len(l))]

 l=[i for i in range(m,n+1) if prime(i)]
 print(*s, sep=" ", end=" ")
 #元素之间用空格分隔,打印结束后不输入换行符而是输出空格·
 
 #map第一个传入int
 #列表创建要先声明哪个字母代表元素
 

2)字符串长度

#把数字转化为字符串可以通过字符串长度len获取数字长度
s=str(int(input()))
sum=0
for i in range(len(s)):
#记得加冒号
      sum+=int(s[i])
print("%d %d"%(len(s),sum))

3)ascii

ord() 函数
#转化为ascii
chr()
#转化为字符
  if str[i].isupper():
        s+=chr(155 - ord(str[i]))
A+Z=155
#所以这样映射

4) 遍历下标

image

s=input()
n,m=map(str,input().split())
# for i in range(len(s)-1,-1,-1):
for i in range(-1, -len(s)-1, -1):
    if(s[i]==n or s[i]==m):
        print("%d %s"%(i,s[i]))

5)字符排列

n, m = str(input()), str(input())
# n 和 m 分别存储两个输入的字符串
if sorted(n) == sorted(m):
    '''
	n.sort() 和 m.sort() 的返回值都是 None,而你在 if 语句中进行的是 None == None 的比较
因为sort是原地修改列表
''
n,m=list(input()),list(input())
n.sort(),m.sort()
if n==m:
    print("yes")

else :print("no")
''
    sorted() 函数会返回字符串的字符按字母顺序排列后的一个新列表
    通过将 n 和 m 排序并进行比较,代码可以判断这两个字符串
    是否包含完全相同的字符且字符的出现顺序无关紧要
    '''
    print("yes")
else:
    print("no")

6)猴子选大王



n=int(input())
lst=list(range(1,n+1))
i=0
while len(lst)>1:
    i+=2
    i%=len(lst) #这步很重要,要想清楚为啥
    del lst[i]

print(lst[0])


n = int(input())  # 输入猴子的数量
p = 0  # p 表示最终胜利者的索引,初始化为 0
for i in range(2, n + 1):  # 从 2 个猴子开始,直到 n 个猴子
    p = (p + 3) % i  # 每次从当前的 p 位置开始,报数到 3,找到下一个被淘汰的猴子
print(p + 1)  # 最终输出猴王的编号,p 的值是从 0 开始的,因此需要 +1

7)列表推导式



s=s1+s2
print(*[i for i in s if i not in s1 or i not in s2])

# l=list(map(int,input().split()))
# ans=sum(l)/len(l)
# s=[l[i] for i in range(len(l)) if l[i]>ans]
# print(*s,sep=" ",end=" ")

l=list(map(int,input().split()))
s=[i for i in l if i>(sum(l)/len(l))]
print(*s,sep=' ',end=' ')

8)if语句

  if s[i].isalpha() and s[i].lower() not in str.lower():
        str+=s[i]

9)每行每列最大值

append用于在列表末尾添加一个元素
n=list(map(int,input().split()))
l=[]
l.append(n[0]+n[4]+n[8])
l.append(n[2]+n[4]+n[6])
for i in range(0,7,3):
    l.append(n[i]+n[i+1]+n[i+2])
for i in range(3):
    l.append(n[i]+n[i+3]+n[i+6])
print(max(l))
#即列表的最大值

10)预处理打印abcd

s="ABCDEFGHIJK"
n=int(input())
for i in range(n):
    for j in range(i+1):
        print(s[j],end="")
    print()

11)杨辉三角

0] * 15 结果是一个长度为 15 的列表:
for _ in range(15),它使用列表生成式(list comprehension)循环了 15 次,每次生成一个 [0] * 15 的列表。这里的 _ 是一个惯用的变量名,表示这个变量不会在后续使用,仅仅是为了执行循环 15 次。

n = int(input())  # 获取输入

# 初始化二维列表,n+1 是因为我们要从1开始索引
l = [[0] *15 for _ in range (15)]

# 初始化杨辉三角的第一行和第二行

l[1][1] = 1
if n>=2:
    l[2][1] = 1
    l[2][2] = 1

# 填充杨辉三角的其他行
for i in range(3, n + 1):
    for j in range(1, i + 1):
        if j == 1 or j == i:
            l[i][j] = 1
        else:
            l[i][j] = l[i-1][j-1] + l[i-1][j]

# 输出杨辉三角

for i in range(1, n + 1):
    a=' '
    print(a*(n-i)*2,end='')
    for j in range(1, i + 1):
        print("%-4d" % l[i][j],end='')
    print()  # 换行

12 利用集合给列表去重

l=list((input())
s=sorted(set(l),key=l.index)
print(*s,sep=" ")
'''
set(l):将 l 转换为集合 set(l)
但集合本身无序
所以列表排序关键词是l.index,返回列表 l 中某个元素首次出现的索引位置
       
'''

13 列表排序

image

n=int(input())
ans=[]
#初始化空列表
while n>0:
    l=list(map(int,input().split()))
    ans.append(sum(l))
#列表末尾添加元素
    n-=1
print(*sorted(ans,reverse=True),sep="\n")

14 不带中括号输出

l=[1,2,3]
print(l)
print(*l)

15 二维列表

 l.append(list(map(int, input().split())))
 #二维列表
 
a,b=map(int,input().split())
num=[]
for i in range(a):
    t= [int(x) for x in input().split()]
    num.append(t)
    #将每一行的整数列表 t 添加到矩阵 num 中。
for i in range(b):
    for j in range(a):
        if a-1==j:
          print(num[j][i])
        else:
          print( num[j][i], end=" ")
        
    # print(num[-1][i])
    #num[-1][i] 表示取矩阵 num 的最后一行的第 i 列。

16 统计字符出现次数

s=input()
a=input()
print(s.count(a))

17 字典

n=int(input())
l=list(map(int,input().split()))
ans={}
for i in l:
    ans[i]=ans.get(i,0)+1
#如果键 i 不存在,get(i, 0) 会返回默认值 0(即第二个参数 0)。
#这就避免了在访问不存在的键时引发 KeyError 错误。
for i in sorted(ans.keys()):
    print("%d:%d"%(i,ans[i]))

18 字典合并

color = ["red", "orange", "yellow", "green", "blue", "violet"]
flower = ["Rose", "Poppies", "Sunflower", "Grass", "Bluebells", "Violets"]
dic = dict(zip(color, flower))
#zip(color, flower):zip 函数将两个可迭代对象中的元素
#一一配对,生成一个迭代器。每一对元素组成一个元组
n = int(input())
for i in range(n):
    s = input()
    if s in color:
        print("%s are %s." % (dic[s], s))
    else:
        print("I don't know about the color %s." % s)
		
		
		
		
		

dit1=dict(eval(input()))
dit2=dict(eval(input()))
#eval(input()) 会读取用户的输入,并将其转换为字典格式。
for i,j in dit1.items():
    dit2[i]=dit2.get(i,0)+j
# 遍历 dit1 中的每一个键值对,其中 i 是键,j 是值。
 
ans=list(dit2.items())
ans.sort(key=lambda x :ord(x[0]) if type(x[0])==str else x[0])

'''
第一个元素是字符串,则使用这个字符串第一个字符的 Unicode 编码(ord(x[0]))作为排序依据。
第一个元素不是字符串,则直接使用这个元素的第一个值(x[0])作为排序依据。

如果键是字符串(type(x[0]) == str),
则按键的 Unicode 码点值 排序。
ord(x[0]) 返回键 x[0] 的 Unicode 编码。
如果键是数字,则直接按数字大小排序。
'''
for i,j in ans:
    if(type(i)==str):
        print("'{}':{}".format(i,j))
    else:
        print("{}:{}".format(i,j))


#### 19 众数

while 1:
try:
n=int(input())
l=list(map(int,input().split()))
num=max(l,key=l.count)
#关键词是出现次数
print(num,l.count(num))
except:
break

posted on 2024-11-05 16:13  Hoshino1  阅读(3)  评论(0编辑  收藏  举报