'%s' % x for x in ar就是所谓的generator expression。它生成一堆'%s' % x,其中x被定义为ar中的每个项。" ".join(...)在给.join()的每个项之间放置一个空格。当给定生成器时,它会在生成器生成的每个项之间放置一个空格。如果ar不是字符串列表,则生成器将每个项转换为字符串。然后,我们使用" ".join(...)在每个字符串之间放置一个空格。sys.argv始终是字符串列表,因此不需要生成器表达式。您可以改为使用" ".join(sys.argv)。根据this answer,无论如何使用list comprehension会更有效。您还可以使用str(x)而不是"%s"%x,因为它更容易阅读。你知道吗
'%s' % x for x in ar
就是所谓的generator expression。它生成一堆'%s' % x
,其中x
被定义为ar
中的每个项。" ".join(...)
在给.join()
的每个项之间放置一个空格。当给定生成器时,它会在生成器生成的每个项之间放置一个空格。如果ar
不是字符串列表,则生成器将每个项转换为字符串。然后,我们使用" ".join(...)
在每个字符串之间放置一个空格。sys.argv
始终是字符串列表,因此不需要生成器表达式。您可以改为使用" ".join(sys.argv)
。根据this answer,无论如何使用list comprehension会更有效。您还可以使用str(x)
而不是"%s"%x
,因为它更容易阅读。你知道吗我同意
join
这一行看起来超级时髦。你知道吗" ".join(...)
将获取参数列表(或任何iterable)并为您创建一个字符串,其中所有参数用一个空格分隔。你知道吗在这种情况下,我只需传入您的排序列表
ar
。你知道吗现在我们还有两个问题:
sys.argv[1:]
而不是仅仅使用sys.argv
。你知道吗[1, 11, 13, 2, 3, 4, 5, 56, 9]
的排序。为了解决这个问题,我会使用ar.append(int(arg))
。你知道吗相关问题 更多 >
编程相关推荐