所以我有一个高度表:
heights = [1, 2, 3, 5, 7, 8, 8, 13]
我使用这个函数将每个高度整数值及其索引存储在一个名为Node的类的列表中。
def initializeNodes(heights):
ans = []
for height in heights:
ans.append(Node(heights.index(height), height))
return ans
但我的问题是,因为他们是名单上的两个8,这给了他们两个相同的前8个位置,即名单上的5:
0 1
1 2
2 3
3 5
4 7
5 8
5 8
7 13
我怎么能绕过这个?
谢谢!
最佳答案
使用enumerate()
生成索引:
def initializeNodes(heights):
ans = []
for i, height in enumerate(heights):
ans.append(Node(i, height))
return ans
您可以使用列表理解将四行折叠为1:
def initializeNodes(heights):
return [Node(i, height) for i, height in enumerate(heights)]
关于python - Python列表迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17573949/