【问题标题】:what is arr = [int(arr_temp) for arr_temp in input().strip().split(' ')] in python什么是 arr = [int(arr_temp) for arr_temp in input().strip().split('')] 在 python
【发布时间】:2018-06-01 22:51:23
【问题描述】:

我是 python 新手,无法理解这个命令的含义。

arr = [int(arr_temp) for arr_temp in input().strip().split(' ')]

【问题讨论】:

  • 在 google 上查找“python 列表理解”
  • 使用input() 输入它将是一个字符串,strip() 从获得的字符串中删除前导和尾随空格。然后split(' ') 通过空格将其拆分为子字符串列表,然后列表推导生成一个整数列表(如果您的输入是有效的整数序列)
  • input().strip().split(' ') 是写input().split() 的尴尬方式。 (它们并不完全相同。第二个会更好地处理输入'5 \t 6 7 '。)
  • @godaygo: split(' ') 不会在空白处拆分;它在文字空间上分裂。如果有多个相邻的空格,它会将它们视为不同的分隔符。 str.split() 不带参数拆分所有空格,将连续分隔符视为单个分隔符,忽略前导和尾随空格。
  • @StevenRumbalski 我同意,但你知道我的意思是 ' ' 文字空间:)

标签: python arrays python-3.x list


【解决方案1】:

您可能想查看 python 的列表理解。

arr = [int(arr_temp) for arr_temp in input().strip().split(' ')]

让我用一个例子来回答这个问题,假设你输入:

   1 3 4 29 12 -2 0
  • input 函数将其读取为字符串
  • strip 函数消除字符串两端的空格,
  • split 函数将字符串拆分为带有分隔符的较小字符串:(即文字空间)
  • 在列表理解中,您可以将其解读为:

    for arr_temp in input().strip().split(' ') :
        int(arr_temp)
    

    我们得到一个存储在变量arr (arr = [1, 3, 4, 29, 12, -2, 0]) 中的整数列表。这不是列表理解的实际替换代码,但它可能会让您更好地理解它正在尝试做什么。

额外说明:除了列表之外,Python 还具有对集合、字典和生成器的理解表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-22
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2021-09-16
    • 1970-01-01
    • 2011-07-26
    相关资源
    最近更新 更多