将 str 添加到列表中每个数字的末尾
Add str to end of each number in a list
这是我现在拥有的:
L1 = range(0,3,1)
num = str(L1)
L2 = ';1'
path = [i + ";1" for i in num]
print(path)
这给了我这个:
['[;1', '0;1', ',;1', ' ;1', '1;1', ',;1', ' ;1', '2;1', '];1']
但我希望它看起来像这样:
0;1
1;1
2;1
目标是在 Grasshopper 脚本中使用它来创建可以替换现有路径的新路径。
问题是 num = str(L1)
会将 整个 L1
列表转换为字符串,但您只想转换 元素L1
列表的 转换为字符串。
试试这个:
path = [str(i) + ";1" for i in range(0,3,1)]
for line in path:
print(line)
输出:
0;1
1;1
2;1
按照你的逻辑,我猜:
L1 = [str(i) for i in range(0,3,1)]
#=> ['0', '1', '2']
所以,放在一起:
L1 = [str(i) for i in list(range(0,3,1))]
L2 = ';1'
path = [i + L2 for i in L1 ]
print(path)
#=> ['0;1', '1;1', '2;1']
然后您可以遍历路径的元素以根据需要将其打印出来。
如果你在第二行之后尝试 print(num)
,你会意识到 num = '[0, 1, 2]'
或 num = 'range(0, 3)'
取决于你的编译器,它已经是一个字符串。这就是为什么当您尝试遍历 num
时,您得到了所有这些东西。
相反,尝试:
L1 = range(0,3,1)
num = str(L1)
L2 = ';1'
for i in L1:
print(str(i) + L2)
或
path = [str(i) + L2 for i in L1]
如果您想将它们放在一个列表中。
这是我现在拥有的:
L1 = range(0,3,1)
num = str(L1)
L2 = ';1'
path = [i + ";1" for i in num]
print(path)
这给了我这个:
['[;1', '0;1', ',;1', ' ;1', '1;1', ',;1', ' ;1', '2;1', '];1']
但我希望它看起来像这样:
0;1
1;1
2;1
目标是在 Grasshopper 脚本中使用它来创建可以替换现有路径的新路径。
问题是 num = str(L1)
会将 整个 L1
列表转换为字符串,但您只想转换 元素L1
列表的 转换为字符串。
试试这个:
path = [str(i) + ";1" for i in range(0,3,1)]
for line in path:
print(line)
输出:
0;1
1;1
2;1
按照你的逻辑,我猜:
L1 = [str(i) for i in range(0,3,1)]
#=> ['0', '1', '2']
所以,放在一起:
L1 = [str(i) for i in list(range(0,3,1))]
L2 = ';1'
path = [i + L2 for i in L1 ]
print(path)
#=> ['0;1', '1;1', '2;1']
然后您可以遍历路径的元素以根据需要将其打印出来。
如果你在第二行之后尝试 print(num)
,你会意识到 num = '[0, 1, 2]'
或 num = 'range(0, 3)'
取决于你的编译器,它已经是一个字符串。这就是为什么当您尝试遍历 num
时,您得到了所有这些东西。
相反,尝试:
L1 = range(0,3,1)
num = str(L1)
L2 = ';1'
for i in L1:
print(str(i) + L2)
或
path = [str(i) + L2 for i in L1]
如果您想将它们放在一个列表中。