【问题标题】:compare indexes of lists and check the conditions比较列表的索引并检查条件
【发布时间】:2020-06-16 04:38:39
【问题描述】:

我正在尝试将一个列表的索引与第二个列表的索引进行比较。

s = [20,40,600,800,1000]
e = [30,700,900,1100]

在上面的示例中,我将检查两个长度是否匹配,如果不匹配,我想查看丢失的索引,就像上面的情况一样,我想忽略 4 。

这里,在按索引比较时,s 总是小于 e,但它是这样的。

s[0]<e[0]<s[1]<e[1]<s[2]....

预期输出:

s = [20,600,800,1000]
e = [30,700,900,1100]

更多样本:

给定:

x = [2,4,6,8,10]
y = [7,9,11]

预期:

x = [6,8,10]
y = [7,9,11]

给定:

a = [4,6,8,10]
b = [3,5,7,9,11]

预期:

a = [4,6,8,10]
b = [5,7,9,11]

需要一些输入。

代码:

if len(s) != len(e):
    if len(s)>len(e):
        for index in range(len(s)):
            if s[index]<e[index]

【问题讨论】:

  • 你能否详细说明'如果不匹配,我想查看丢失的索引,就像上面的情况一样,我想忽略 4' 语句。 4 是如何被忽略的?
  • 其实也忽略了6个条件满足。在这种情况下有什么规则?忽略第一个索引?
  • 您可以从每个列表中获取最小值 - 然后对于每个数字,如果减去最小值的数字不相等,则它不匹配 - 如果您的最小值是奇数,则需要注意.
  • for index in range(len(s)): if s[index]&lt;e[index] 这样你会超出e数组的范围。
  • 我看到s[0]&lt;e[0]&lt;s[1]&lt;e[1]&lt;s[2].... 不是唯一的一个条件。数组必须具有相同的级数,对吗?这样s [i] - s [i-1] = e [i]-e [i-1]

标签: python python-3.x list dataframe


【解决方案1】:

这样的?

i = j = 0
q, w = [], []

while i < len(e) and j < len(s):
    if e[i] > s[j]:
        w.append(e[i])
        q.append(s[j])
        while j < len(s) and e[i] > s[j]:
            q[-1] = s[j]
            j += 1
    i += 1

print(q,w)

【讨论】:

  • 这就像一个魅力,我还在用很少的条件测试它,到目前为止一切都很好。
  • 嘿,e[j] - s[i] ! = 1,这将失败,这不会总是一个
  • 我已经编辑了se,请您检查一下
  • 那么条件是什么? e[0] &gt; s[0],但是s[1] &gt; e[0]?
  • 是的,这就是我提到的条件,s[0]&lt;e[0]&lt;s[1]&lt;e[1]&lt;s[2]
猜你喜欢
  • 2020-05-16
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 2014-03-13
  • 2020-12-07
相关资源
最近更新 更多