Python Can';t获取一个for循环作为列表理解
这个for循环可以正常工作,但不能作为列表理解。 理解为每个迭代创建空元素。 有人能解释什么是错误的以及如何修复它吗Python Can';t获取一个for循环作为列表理解,python,list-comprehension,Python,List Comprehension,这个for循环可以正常工作,但不能作为列表理解。 理解为每个迭代创建空元素。 有人能解释什么是错误的以及如何修复它吗 def GetAsciiList(): num_list = [] for num in range(32, 42, 1): num_list.append((str(num), chr(num)+" ")) return num_list def GetAsciiListLC(): num_list = [] num_l
def GetAsciiList():
num_list = []
for num in range(32, 42, 1):
num_list.append((str(num), chr(num)+" "))
return num_list
def GetAsciiListLC():
num_list = []
num_list = [(num_list.append((str(num), chr(num)+" "))) for num in range(32, 42, 1)]
return num_list
print GetAsciiList()
print GetAsciiListLC()
控制台输出:
[('32', ' '), ('33', '! '), ('34', '" '), ('35', '# '), ('36', '$ '), ('37', '% '), ('38', '& '), ('39', "' "), ('40', '( '), ('41', ') ')]
[None, None, None, None, None, None, None, None, None, None]
请考虑
GetAsciiListLC()
中的这一行:
num\u list.append((str(num),chr(num)+“”)
修改列表并返回None
我想你想要的是:
def GetAsciiListLC():
""" Return list of 2-tuples containing numbers and ASCII equivalents, both as strings. """
return [(str(num), chr(num) + " ") for num in range(32, 42)]
有关从list.append()方法返回None的基本原理,请参见此问题:
在
GetAsciiListLC()中考虑这一行:
num\u list.append((str(num),chr(num)+“”)
修改列表并返回None
我想你想要的是:
def GetAsciiListLC():
""" Return list of 2-tuples containing numbers and ASCII equivalents, both as strings. """
return [(str(num), chr(num) + " ") for num in range(32, 42)]
有关从list.append()方法返回None的基本原理,请参见此问题:
您可以编辑问题以格式化Python代码吗?Python对空格敏感,很难知道如何正确编辑这个问题。列表理解解析为列表。因此,您可能只需要返回[(str(num),chr(num)+”“)范围内的num]
。如果在列表理解中追加,追加的结果,None
将是列表中每个项目的值,如您所见。您可以编辑问题以格式化Python代码吗?Python对空格敏感,很难知道如何正确编辑这个问题。列表理解解析为列表。因此,您可能只需要返回[(str(num),chr(num)+”“)范围内的num]
。如果在列表中追加,追加的结果,None
将是列表中每个项目的值,如您所见。