简单的问题,因为我只想写更多的pythonic代码。我想将以下内容转换为列表理解
index_row = 0
for row in stake_year.iterrows():
self.assertTrue(row[0] == counts[index_row][0])
self.assertTrue(row[1][0] == counts[index_row][1])
index_row += 1
我不明白的是如何浏览计数清单。我不希望嵌套像:
[self.assertTrue(x[0] == counts[y][0] for x in stake_year for y in counts]
我现在的代码正在运行,但我想更好地理解python并使用应该使用的语言。
答案 0 :(得分:7)
在您的案例中使用的pythonic方式更多是使用enumerate
:
for index_row, row in enumerate(stake_year.iterrows()):
self.assertTrue(row[0] == counts[index_row][0])
self.assertTrue(row[1][0] == counts[index_row][1])
答案 1 :(得分:5)
唐'吨
列表推导不是简单的pythonic而不是简单的循环 - 只有当这些循环被设计为构建新的列表(或dicts,sets等),并且listcomp比循环更容易阅读。
在您的示例中并非如此(您没有构建任何内容),并且您不应仅使用listcomp作为其副作用,这将是明显的非语音。
转换
非常好result = []
for line in lines:
result.append(line.upper())
到
result = [line.upper() for line in lines]
但不是你的例子。