题解 | #密码游戏#
密码游戏
https://www.nowcoder.com/practice/36641ab168664384aff798ba7ce34bc1
num = input() ss = [] for i in num: ii = (int(i)+3)%9 ss.append(str(ii)) #写成一行:ss = list(((int(i)+3)%9) for i in num) #交换 ss[0],ss[2]=ss[2],ss[0] ss[1],ss[3]=ss[3],ss[1] #result = ''.join(ss) #用空字符串 '' 作为连接符,将每个字符串连接成一个长字符串。 #print(result) for y in ss: #输出数字,需要遍历列表,注意不换行。 print(y,end='')
ss = list(((int(i)+3)%9) for i in num)解释:
for i in num
: 这是列表解析的迭代部分,它遍历了列表num
中的每个元素,并将当前元素赋值给变量i
。int(i)
: 这将列表num
中的每个元素i
转换为整数类型。(int(i) + 3) % 9
: 这是对每个元素执行的操作。它首先将元素转换为整数,然后加上 3,接着取结果除以 9 的余数。list(...)
: 这将列表解析的结果转换为一个新的列表ss
。
result = ''.join(map(str, num_list)) 解释:
- map(str, num_list):使用 map() 函数将列表 num_list 中的每个整数元素转换为字符串形式。 map() 函数接受一个函数和一个可迭代对象作为参数,然后将该函数应用于可迭代对象的每个元素。在这里,str 函数被用于将整数转换为字符串。
- ''.join(...):使用 join() 函数将 map() 函数的结果连接起来。 join() 函数接受一个可迭代对象作为参数,并使用指定的字符串将可迭代对象中的所有元素连接起来。在这里,我们使用空字符串 '' 作为连接符,将每个字符串连接成一个长字符串。
这行代码的目的是将列表中的多个整数元素连接成一个字符串。