Sea*_*ean 2 python iteration list
所以我有一个高度列表:
heights = [1, 2, 3, 5, 7, 8, 8, 13]
Run Code Online (Sandbox Code Playgroud)
并且我使用此函数将每个高度整数值及其索引存储在名为Node的类中的列表中.
def initializeNodes(heights):
ans = []
for height in heights:
ans.append(Node(heights.index(height), height))
return ans
Run Code Online (Sandbox Code Playgroud)
但我的问题是,因为它们是列表中的两个8,它在列表中给它们两个相同的前8个位置:
0 1
1 2
2 3
3 5
4 7
5 8
5 8
7 13
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个?谢谢!
使用enumerate()生成指数:
def initializeNodes(heights):
ans = []
for i, height in enumerate(heights):
ans.append(Node(i, height))
return ans
Run Code Online (Sandbox Code Playgroud)
您可以使用列表推导将四行折叠为1:
def initializeNodes(heights):
return [Node(i, height) for i, height in enumerate(heights)]
Run Code Online (Sandbox Code Playgroud)