【问题标题】:Compare two lists and find the unique values比较两个列表并找到唯一值
【发布时间】:2018-08-11 19:45:27
【问题描述】:

我刚开始接触 Python,除了 SQL 之外没有真正的编程经验。

我的任务:

  1. 查找同时存在于偶数行和奇数行的单词。
  2. 只存在于偶数行的单词
  3. 只存在于奇数行的单词

所有标点符号和大写字母都已删除,因此我们无需担心。但是,它是在同一行中的几个单词

输出应该是这样的

Common words on both lines: ['I', 'the', 'am', 'all', 'as', ...] 
Only even lines : ['yellow', 'christmas', 'smell', ...] 
Only odd lines: ['yours', 'war', 'may', 'remote', ...]

我开始喜欢

evens, odds = set(), set()
with open('textfile.txt') as f:
    for index, row in enumerate(f):
        if index % 2 == 0:
            evens.update(row.split())
        else:
            odds.update(row.split())
commons = sorted(evens & odds)

我应该如何从这里继续?我的主要问题是打印出偶数和赔率的唯一单词。一个小问题是将我的公共列表转换为一行。

【问题讨论】:

  • 在python中查找“set”关键字
  • 您应该在预期输出之前发布 txt 文件的示例
  • 我相信使用unique = evens - odds(减号运算符)可以实现设置差异
  • 谢谢。我使用了功能集。
     commons = sorted(evens & odds) unique_odds=set(odds-evens) unique_evens=set(evens-odds) 。如何将它包含在我的主查询中,以便输出是这样的? <pre>unique_odds: ['yours', 'war', 'may', 'remote', ...] .我想我需要以某种方式转置它

标签: python


【解决方案1】:

使用差分运算符-

only_odd = odd - even

【讨论】:

【解决方案2】:

如果你想经常使用python,列表理解是一个重要的学习概念。

所以你可以试试问题陈述 1

combine=['I', 'the', 'am', 'all', 'as','yellow'] 
even_line=['yellow', 'christmas', 'smell']
odd_line=['yours', 'war', 'may', 'remote','yellow']

words_in_both_odd_even=[i for i in combine for j in even_line for k in odd_line if (i==j and i==k)]

words_in_both_odd_even

对于问题陈述 2:

words_in_even_line=[i for i in combine for j in even_line if (i==j)]
words_in_even_line

对于问题陈述 3:

words_in_odd_line=[i for i in combine for k in odd_line if (i==k)]

words_in_odd_line

如果您在上述任何一个问题语句输出中寻找唯一值-那么您可以使用set(words_in_both_odd_even)set(words_in_even_line)set(words_in_odd_line)

【讨论】:

    【解决方案3】:

    首先,要知道偶数行和奇数行的常用词,你需要得到偶数行和奇数行单词的两个列表。这就是如何制作这两个列表的方法。

    enter image description here

    那么你要找到两个列表中存在的常用词。如果该词是两个列表的常用词,则从两个列表中删除这个词,并将其添加到新的常用词列表中。

    enter image description here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 2015-07-19
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多