有谁能解释一下Python 3命令的作用吗?

r9f1avp5  于 2022-12-15  发布在  Python
关注(0)|答案(3)|浏览(171)

我是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
yqlxgs2m

yqlxgs2m1#

input()看起来像是得到了下一行的输入,在这个例子中,这是字符串"1 2 3 4 5\n"(它的末尾有一个换行符)。
rstrip()然后删除输入右端的空白,包括换行符。
没有参数的split()在空白处拆分,将输入转换为字符串的可迭代形式。例如['1', '2', '3', '4', '5']
map(int, sequence)将int应用于每个字符串。例如int('1') -> 1int('2') -> 2等。所以你的字符串序列现在是一个整数序列。
最后,list(seq)将序列转换为列表类型,这样就有了[1,2,3,4,5]

a1o7rhls

a1o7rhls2#

这是一种“Python”方法,通过空格分隔的数字输入创建int s的list

arr = list(map(int, input().rstrip().split()))

它接受一个字符串输入,并使用map(...)的result将其转换为一个整数列表,map(...)返回一个生成器。
map接受一个函数,并将其应用于第二个参数的所有元素。
输入()。
rstrip(第页)。
split()接受一个输入,删除右边的所有空格,并将其拆分为空格部分,然后将其作为可迭代项馈送到map(int, ...)map(int, ...)通过将int应用于给定可迭代项的所有元素来创建生成器结果。map的结果馈送到list(...)list(...)从中生成一个列表。

"1 2 3 4" => ["1","2","3","4"] -> generator (1,2,3,4) -> [1,2,3,4]

如果您提供的不是数字或除空格和数字以外的任何内容,则会出现错误-不进行错误处理。
它很短,但只有在输入正确的情况下才安全。

szqfcxe2

szqfcxe23#

在这条线上

arr = list(map(int, input().rstrip().split()))

input():默认情况下,它将字符串作为输入。
map(aFunction, aSequence)函数对可迭代对象中的每一项应用一个传入函数,并返回一个包含所有函数调用结果的列表,因此,所有由空格分隔的字符串条目都被转换为整数。
参考:https://www.bogotobogo.com/python/python_fncs_map_filter_reduce.php
split():该函数用于将字符串中的所有条目按空格分隔。
rstrip():此函数用于去除数组输入(1 2 3 4 5)末尾的空格(如果有

相关问题