Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两个列表之间的重复/公共元素_Python_List_Python 2.7_For Loop - Fatal编程技术网

Python 两个列表之间的重复/公共元素

Python 两个列表之间的重复/公共元素,python,list,python-2.7,for-loop,Python,List,Python 2.7,For Loop,对于熟悉Python中列表的人,我有一个愚蠢的问题。 我想得到两个列表中的常用项。假设我有这个列表: dates_list = ['2016-07-08 02:00:02', '2016-07-08 02:00:17', '2016-07-08 02:00:03', '2016-07-08 02:00:20', '2016-07-08 02:01:08',

对于熟悉Python中列表的人,我有一个愚蠢的问题。 我想得到两个列表中的常用项。假设我有这个列表:

dates_list = ['2016-07-08 02:00:02', 
              '2016-07-08 02:00:17', 
              '2016-07-08 02:00:03', 
              '2016-07-08 02:00:20', 
              '2016-07-08 02:01:08', 
              '2016-07-08 02:00:09', 
              '2016-07-08 02:01:22', 
              '2016-07-08 02:01:33']
以及一个名为“time_by_seconds”的列表,其中包含一天中所有秒的列表:

time_by_seconds = [['2016-07-08 02:00:00',
          '2016-07-08 02:00:01',
          '2016-07-08 02:00:02',
          '2016-07-08 02:00:03',
          '2016-07-08 02:00:04',
          '2016-07-08 02:00:05',
          '2016-07-08 02:00:06',
          etc                  ],
          ['2016-07-08 02:01:00',
           '2016-07-08 02:01:01',
           '2016-07-08 02:01:02',
           '2016-07-08 02:01:03',
           '2016-07-08 02:01:04',
          etc                  ]]
这是我的代码,用于打印此列表中的项目:

for item in dates_list:
    for one_list in time_by_seconds:
        if item in one_list:
            print item
结果是:

2016-07-08 02:00:02
2016-07-08 02:00:17
2016-07-08 02:00:03
2016-07-08 02:00:20
2016-07-08 02:01:08
2016-07-08 02:00:09
2016-07-08 02:01:22
2016-07-08 02:01:33
2016-07-08 02:17:42
2016-07-08 02:17:42
2016-07-08 02:17:42
2016-07-08 02:17:42
2016-07-08 02:05:35
2016-07-08 02:05:35
2016-07-08 02:03:22
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:14:54
2016-07-08 02:14:54
2016-07-08 02:14:54
2016-07-08 02:05:13
2016-07-08 02:05:13
2016-07-08 02:15:30
2016-07-08 02:15:30
2016-07-08 02:15:30
2016-07-08 02:15:30
2016-07-08 02:01:53
2016-07-08 02:02:31
2016-07-08 02:00:08
2016-07-08 02:04:16
2016-07-08 02:08:44
2016-07-08 02:08:44
2016-07-08 02:11:17
2016-07-08 02:11:17
2016-07-08 02:11:17
2016-07-08 02:01:40
2016-07-08 02:04:23
2016-07-08 02:01:34
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:00:27
2016-07-08 02:14:35
2016-07-08 02:14:35
2016-07-08 02:14:35
2016-07-08 02:00:57
2016-07-08 02:02:24
2016-07-08 02:02:46
2016-07-08 02:05:04
2016-07-08 02:05:04
2016-07-08 02:11:26
2016-07-08 02:11:26
2016-07-08 02:11:26
2016-07-08 02:06:24
2016-07-08 02:06:24
etc
但如果我使用另一个列表,长度为49,我有重复的。具体地说,我必须有49个元素作为结果,因为所有这些日期都存在于我的时间里。 名单如下:

beginning_time_list = ['2016-07-08 02:17:42',
 '2016-07-08 02:05:35',
 '2016-07-08 02:03:22',
 '2016-07-08 02:26:33',
 '2016-07-08 02:14:54',
 '2016-07-08 02:05:13',
 '2016-07-08 02:15:30',
 '2016-07-08 02:01:53',
 '2016-07-08 02:02:31',
 '2016-07-08 02:00:08',
 '2016-07-08 02:04:16',
 '2016-07-08 02:08:44',
 '2016-07-08 02:11:17',
 '2016-07-08 02:01:40',
 '2016-07-08 02:04:23',
 '2016-07-08 02:01:34',
 '2016-07-08 02:24:31',
 '2016-07-08 02:00:27',
 '2016-07-08 02:14:35',
 '2016-07-08 02:00:57',
 '2016-07-08 02:02:24',
 '2016-07-08 02:02:46',
 '2016-07-08 02:05:04',
 '2016-07-08 02:11:26',
 '2016-07-08 02:06:24',
 '2016-07-08 02:04:32',
 '2016-07-08 02:08:50',
 '2016-07-08 02:08:27',
 '2016-07-08 02:02:30',
 '2016-07-08 02:03:59',
 '2016-07-08 02:01:19',
 '2016-07-08 02:02:09',
 '2016-07-08 02:05:47',
 '2016-07-08 02:02:36',
 '2016-07-08 02:01:02',
 '2016-07-08 02:02:58',
 '2016-07-08 02:06:19',
 '2016-07-08 02:02:34',
 '2016-07-08 02:00:17',
 '2016-07-08 02:10:03',
 '2016-07-08 02:08:20',
 '2016-07-08 02:02:36',
 '2016-07-08 02:17:25',
 '2016-07-08 02:07:19',
 '2016-07-08 02:13:07',
 '2016-07-08 02:03:51',
 '2016-07-08 02:03:35',
 '2016-07-08 02:14:53',
 '2016-07-08 02:18:36']
相同的代码:

for item in beginning_time_list:
    for one_list in time_by_seconds:
        if item in one_list:
            print item
这就是结果:

2016-07-08 02:00:02
2016-07-08 02:00:17
2016-07-08 02:00:03
2016-07-08 02:00:20
2016-07-08 02:01:08
2016-07-08 02:00:09
2016-07-08 02:01:22
2016-07-08 02:01:33
2016-07-08 02:17:42
2016-07-08 02:17:42
2016-07-08 02:17:42
2016-07-08 02:17:42
2016-07-08 02:05:35
2016-07-08 02:05:35
2016-07-08 02:03:22
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:26:33
2016-07-08 02:14:54
2016-07-08 02:14:54
2016-07-08 02:14:54
2016-07-08 02:05:13
2016-07-08 02:05:13
2016-07-08 02:15:30
2016-07-08 02:15:30
2016-07-08 02:15:30
2016-07-08 02:15:30
2016-07-08 02:01:53
2016-07-08 02:02:31
2016-07-08 02:00:08
2016-07-08 02:04:16
2016-07-08 02:08:44
2016-07-08 02:08:44
2016-07-08 02:11:17
2016-07-08 02:11:17
2016-07-08 02:11:17
2016-07-08 02:01:40
2016-07-08 02:04:23
2016-07-08 02:01:34
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:24:31
2016-07-08 02:00:27
2016-07-08 02:14:35
2016-07-08 02:14:35
2016-07-08 02:14:35
2016-07-08 02:00:57
2016-07-08 02:02:24
2016-07-08 02:02:46
2016-07-08 02:05:04
2016-07-08 02:05:04
2016-07-08 02:11:26
2016-07-08 02:11:26
2016-07-08 02:11:26
2016-07-08 02:06:24
2016-07-08 02:06:24
etc
抱歉,共有95项

有人知道我为什么有复制品吗?
Thnx

一旦在其中一个子列表中找到该项,搜索将与其他子列表一起继续

您应该考虑使用<代码> Buffe<代码>,一旦在子列表中找到一个当前日期项,就停止搜索:

for item in beginning_time_list:
    for one_list in time_by_seconds:
        if item in one_list:
            print item
            break

在其中一个子列表中找到该项后,搜索将与其他子列表一起继续

您应该考虑使用<代码> Buffe<代码>,一旦在子列表中找到一个当前日期项,就停止搜索:

for item in beginning_time_list:
    for one_list in time_by_seconds:
        if item in one_list:
            print item
            break

为了在两个列表中查找公共元素,您可以使用
set()
作为:

>>> a = [1, 2, 3, 4]
>>> b = [3, 4, 5, 6]
>>> list(set(a).intersection(set(b)))
[3, 4]
在您的情况下,
b
是列表列表。你需要先把列表展平。为此,可以使用
itertools.chain()


为了在两个列表中查找公共元素,您可以使用
set()
作为:

>>> a = [1, 2, 3, 4]
>>> b = [3, 4, 5, 6]
>>> list(set(a).intersection(set(b)))
[3, 4]
在您的情况下,
b
是列表列表。你需要先把列表展平。为此,可以使用
itertools.chain()


好吧,但是把一天中所有的时间都存储在一个列表中似乎不是一个好主意。当然还有更好的办法。你到底想达到什么目的?我的猜测是,你在
时间中以秒为单位有重复项,即
2016-07-08 02:17:42
在多个列表中(我假设不应该发生),好吧,但将一天中的所有秒存储在一个列表中似乎不是一个好主意。当然还有更好的办法。你到底想实现什么?我的猜测是,你在
时间内以秒为单位有重复项,即
2016-07-08 02:17:42
在多个列表中(我假设不应该发生)更新了列表列表的答案,也更新了列表的答案