当我运行以下代码时:
happy
bad
like
打印的结果将是
array1
输出按照array2
中列出的顺序打印。如何根据like
happy
bad
对输出进行排序?我希望输出为:
{{1}}
答案 0 :(得分:3)
切换循环:
entryBox = Entry(root)
def leftClick(event):
generator(int(entryBox.get()))
最重要的是用作主要列表的内容。因此,在您的情况下,list1 = ["happy", "sad", "good", "bad", "like"]
list2 = ["i like starhub", "i am happy with the starhub service", "starhub is bad", " this is not awful"]
for j in list2:
for i in list1:
if i in j:
print(i)
>>like
>>happy
>>bad
是主要的,并按此排序。
在我给出的那个中,list1
是主要的。
答案 1 :(得分:1)
我只想添加一个关于命名约定的说明。
在许多编程语言中,变量名event.Authorization
和i
传统上用于数字循环索引,但不用于列表或数组中元素的实际值。
例如(双关语),如果你在JavaScript中编写一个老式的j
循环,它可能看起来像这样:
for
您也可以在Python中编写这样的代码,但由于您使用了更具表现力的Python var names = [ "Kent", "Leb", "Dalen" ];
for( var i = 0; i < names.length; i++ ) {
console.log( names[i] );
}
循环,因此您可以使用比for
和i
更好的名称。
正如Dalen在评论中指出的那样,j
和array1
这些名称与Python术语不匹配 - 但更重要的是,他们不会对的内容说些什么在这些列表中。
在整个过程中使用更多不言自明的变量名称会很有帮助。在您的代码中,两个列表是单词列表和短语列表,循环中的变量表示单个单词和单个短语。
我喜欢的惯例是对列表或数组使用复数名称,并为该列表或数组的单个元素使用相应的单数名称。
所以你可以使用这样的名字:
array2
您是否看到这使代码更清晰?而不是words = [ "happy", "sad", "good", "bad", "like" ]
phrases = [
"i like starhub",
"i am happy with the starhub service",
"starhub is bad",
" this is not awful"
]
for phrase in phrases:
for word in words:
if word in phrase:
print( word )
和i
以及j
和array1
(或array2
和list1
),每个名称都会描述您的实际数据。重新开始工作。