附加条件

2024-09-28 22:21:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我将要编写一个程序,将一些行转换成一行,但不幸的是,我在添加不常见元素时遇到了问题。这就是我到目前为止所做的:

List_of_sentences = []
for line in range(int(input())):
    List_of_sentences.append(input().strip().split())

Sample_sentence = input().split()

Final_list = []

for lists in List_of_sentences:
    for elements in Sample_sentence:
        if elements in lists:
            Final_list.append(lists[0])
        else:
            Final_list.append(elements)
            
print(' '.join(Final_list))
例如,考虑这两个列表:

List_of_sentences = [['man', 'I', 'je', 'ich'], ['kheili', 'very', 'très', 'sehr'], ['alaghemand', 'interested', 'intéressé', 'interessiert'], ['barnamenevisi', 'programming', 'laprogrammation', 'Programmierung']]

Sample_sentence = ['I', 'am', 'very', 'interested', 'in', 'programming']

它必须返回以下内容:

man am kheili alaghemand in barnamenevisi

但是:

man kheili alaghemand barnamenevisi

我的问题是其他部分

非常感谢您的帮助


Tags: ofsampleinforinputsentenceselementssentence
3条回答

你的循环似乎有点混乱。应该是这样的

List_of_sentences = []
for line in range(int(input())):
    List_of_sentences.append(input().strip().split())

Sample_sentence = input().split()

Final_list = []

for elements in Sample_sentence: #this for loop should be first
    var = None
    for lists in List_of_sentences: # this for loop should be second
        if elements in lists:
            #Final_list.append(lists[0])
            var = lists[0]
            break
    Final_list.append(var if var else elements)
            
print(' '.join(Final_list))

您可以尝试以下方法:

for elements in Sample_sentence: # since you need to check for elements in the sample sentence in all lists, this should be the outer loop
    present = False
    for lists in List_of_sentences:
        if elements in lists:
            Final_list.append(lists[0])
            present = True
    if not present:
        Final_list.append(elements)

以下是我尝试过的方法,效果很好:

List_of_sentences = [
    ['man', 'I', 'je', 'ich'], 
    ['kheili', 'very', 'très', 'sehr'], 
    ['alaghemand', 'interested', 'intéressé', 'interessiert'], 
    ['barnamenevisi', 'programming', 'laprogrammation', 'Programmierung']
]
Sample_sentence = ['I', 'am', 'very', 'interested', 'in', 'programming']
Final_list = []

for elements in Sample_sentence:
    found = False
    for lists in List_of_sentences:
        if elements in lists:
            Final_list.append(lists[0])
            found = True
    if not found:
        Final_list.append(elements)

print(' '.join(Final_list))

代码的问题是,如果找不到元素,它总是会添加元素,而不是添加一次并继续下一个元素

相关问题 更多 >