通过 Python 的连接方法隐式列表声明?
Implicit list declaration via Python's join method?
我是新来的,因为我刚刚开始编程。在尝试学习 Python 的基础知识时,我已经 运行 遇到了问题。我希望你们中的一个能帮上忙。
我很难理解这个代码片段是如何工作的。列表 satz 被引入 after 已经被上面的 join 方法使用但我没有收到任何错误:
import random
auswahl = [["Hallo!","Guten Tag!","Moin!"],["Wie geht es Ihnen?","Wie läuft's?", "Whazz uppp?"],["Tschüß!","Auf Wiedersehen!","I'm outta here!"]]
for i in auswahl:
print (" ".join(satz))
counter = 0
satz = []
for j in i:
satz.append((auswahl[counter][random.randint(0,2)]))
counter = counter + 1
这是输出:
您好! Wie läuft 的?我要离开这里了!
哎呀! Wie geht es Ihnen? Auf Wiedersehen!
古腾标签! Wie geht es Ihnen? Auf Wiedersehen!
而这个使用大致相同设置的示例不起作用:
counter = [1,2,3]
for i in counter:
print(" ".join(test))
test = []
NameError Traceback (most recent call last)
<ipython-input-46-ba80e417be84> in <module>()
1 counter = [1,2,3]
2 for i in counter:
----> 3 print(" ".join(hallo))
4 hallo = []
NameError: name 'hallo' is not defined
我在其他线程中没有发现任何有用的信息。也许你们中的一个可以提供帮助?提前致谢!
如果要随机化计数器列表的顺序,您需要按如下方式定义测试:
import random
test = []
counter = [1,2,3]
for i in counter:
test.append(str(counter[random.randint(0,2)]))
print(" ".join(test))
除非您将 " ".join(satz)
移动到 for 循环的底部,否则您的第一个示例将不起作用,因为必须在加入之前定义 satz
,如下所示:
import random
auswahl = [["Hallo!","Guten Tag!","Moin!"],["Wie geht es Ihnen?","Wie läuft's?", "Whazz uppp?"],["Tschüß!","Auf Wiedersehen!","I'm outta here!"]]
for i in auswahl:
counter = 0
satz = []
for j in i:
satz.append((auswahl[counter][random.randint(0,2)]))
counter = counter + 1
print (" ".join(satz))
我是新来的,因为我刚刚开始编程。在尝试学习 Python 的基础知识时,我已经 运行 遇到了问题。我希望你们中的一个能帮上忙。
我很难理解这个代码片段是如何工作的。列表 satz 被引入 after 已经被上面的 join 方法使用但我没有收到任何错误:
import random
auswahl = [["Hallo!","Guten Tag!","Moin!"],["Wie geht es Ihnen?","Wie läuft's?", "Whazz uppp?"],["Tschüß!","Auf Wiedersehen!","I'm outta here!"]]
for i in auswahl:
print (" ".join(satz))
counter = 0
satz = []
for j in i:
satz.append((auswahl[counter][random.randint(0,2)]))
counter = counter + 1
这是输出:
您好! Wie läuft 的?我要离开这里了!
哎呀! Wie geht es Ihnen? Auf Wiedersehen!
古腾标签! Wie geht es Ihnen? Auf Wiedersehen!
而这个使用大致相同设置的示例不起作用:
counter = [1,2,3]
for i in counter:
print(" ".join(test))
test = []
NameError Traceback (most recent call last)
<ipython-input-46-ba80e417be84> in <module>()
1 counter = [1,2,3]
2 for i in counter:
----> 3 print(" ".join(hallo))
4 hallo = []
NameError: name 'hallo' is not defined
我在其他线程中没有发现任何有用的信息。也许你们中的一个可以提供帮助?提前致谢!
如果要随机化计数器列表的顺序,您需要按如下方式定义测试:
import random
test = []
counter = [1,2,3]
for i in counter:
test.append(str(counter[random.randint(0,2)]))
print(" ".join(test))
除非您将 " ".join(satz)
移动到 for 循环的底部,否则您的第一个示例将不起作用,因为必须在加入之前定义 satz
,如下所示:
import random
auswahl = [["Hallo!","Guten Tag!","Moin!"],["Wie geht es Ihnen?","Wie läuft's?", "Whazz uppp?"],["Tschüß!","Auf Wiedersehen!","I'm outta here!"]]
for i in auswahl:
counter = 0
satz = []
for j in i:
satz.append((auswahl[counter][random.randint(0,2)]))
counter = counter + 1
print (" ".join(satz))