【问题标题】:Compare specific list element with other elements将特定列表元素与其他元素进行比较
【发布时间】:2018-12-03 10:21:39
【问题描述】:

我有一个列表:

L=[9, 9, 7, 6, 5, 4, 3]

现在,我想将列表 i.e 7 的第三个元素与剩余元素进行比较,看它们是否大于给定的数字。

预期输出:

['yes','yes','equal','no','no','no','no']

【问题讨论】:

  • 在 SO 上需要证明您为解决您要求社区帮助您解决的问题所做的努力。你的尝试在哪里?
  • 当你提出问题时,你必须表现出你的努力并输入你的代码。

标签: python-3.x list list-comprehension


【解决方案1】:

使用 if else 语句的列表理解应该这样做。

newlist = ["Yes" if item > L[2] else "No" if item < L[2] else "Equal" for item in L]
print (newlist)

:: ['Yes', 'Yes', 'Equal', 'No', 'No', 'No', 'No']

【讨论】:

  • 除了条件的重新排列之外,似乎与我的答案相似:)
  • @Sruthi V,您的答案匹配,但他可能不想硬编码数字“7”,因为它可能是列表中的任何其他数字。将其与职位进行比较是更好的方法。
  • 这似乎是一个微小的变化,应该在我的回答中作为评论留下你不觉得 XD XD(nvm 开玩笑)
  • 实际上,直到我发布我的答案才加载您的答案:P 另外,我目前没有足够的代表评论其他用户的答案:(
  • @Sruthi V,我看到你已经编辑了你的答案以匹配 xD
【解决方案2】:

你可以有这样的功能:

In [1320]: def compare_elements(element, lst):
      ...:     ans = []
      ...:     for i in lst:
      ...:         if i > element:
      ...:             ans.append('yes')
      ...:         elif i < element:
      ...:             ans.append('no')
      ...:         else:
      ...:             ans.append('equal')
      ...:     return ans
      ...:  

调用如下函数。将要比较的列表和元素传递给函数:

In [1312]: L=[9, 9, 7, 6, 5, 4, 3]

In [1321]: res = compare_elements(L[2], L)
In [1323]: res
Out[1323]: ['yes', 'yes', 'equal', 'no', 'no', 'no', 'no']

【讨论】:

  • @Learner 告诉我这是否对您有帮助?
猜你喜欢
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 2017-12-11
  • 1970-01-01
相关资源
最近更新 更多