我是Python编程的初学者。我已经检查了这些方法各自的作用,但没有把它们作为一个整体。下面是一个程序,它是为了回答这个问题而编写的:* 编写一个程序,以逆序打印数组中的所有元素 *:
if __name__ == '__main__': #1
n = int(input()) #2
#3
arr = list(map(int, input().rstrip().split())) #4
for i in range(n): #5
print(arr[-i-1],end=' ') #6
我没有得到第4行。谁能一步一步地解释这行是做什么的?他们是如何工作的,并给出整体输出?输入用空格分隔:
5 #length of the array
1 2 3 4 5 #inputs separated by space
3条答案
按热度按时间yqlxgs2m1#
input()
看起来像是得到了下一行的输入,在这个例子中,这是字符串"1 2 3 4 5\n"
(它的末尾有一个换行符)。rstrip()
然后删除输入右端的空白,包括换行符。没有参数的
split()
在空白处拆分,将输入转换为字符串的可迭代形式。例如['1', '2', '3', '4', '5']
map(int, sequence)
将int应用于每个字符串。例如int('1') -> 1
,int('2') -> 2
等。所以你的字符串序列现在是一个整数序列。最后,
list(seq)
将序列转换为列表类型,这样就有了[1,2,3,4,5]
。a1o7rhls2#
这是一种“Python”方法,通过空格分隔的数字输入创建
int
s的list
:它接受一个字符串输入,并使用map(...)的result将其转换为一个整数列表,map(...)返回一个生成器。
map接受一个函数,并将其应用于第二个参数的所有元素。
输入()。
rstrip(第页)。
split()接受一个输入,删除右边的所有空格,并将其拆分为空格部分,然后将其作为可迭代项馈送到
map(int, ...)
,map(int, ...)
通过将int
应用于给定可迭代项的所有元素来创建生成器结果。map的结果馈送到list(...)
,list(...)
从中生成一个列表。如果您提供的不是数字或除空格和数字以外的任何内容,则会出现错误-不进行错误处理。
它很短,但只有在输入正确的情况下才安全。
szqfcxe23#
在这条线上
input()
:默认情况下,它将字符串作为输入。map(aFunction, aSequence)
函数对可迭代对象中的每一项应用一个传入函数,并返回一个包含所有函数调用结果的列表,因此,所有由空格分隔的字符串条目都被转换为整数。参考:
https://www.bogotobogo.com/python/python_fncs_map_filter_reduce.php
split()
:该函数用于将字符串中的所有条目按空格分隔。rstrip()
:此函数用于去除数组输入(1 2 3 4 5)
末尾的空格(如果有