python - 比较 python 元组以查找在上一个和下一个元组中也找到的值

标签 python list comparison tuples

a = [('08:57', 'Edinburgh', '12:08'), ('12:08', 'London', '12:50'), ('12:50', 'London', 14:44')]

所以我有时间列表(这些是公共(public)汽车旅程),如上面的“a”,每个元组包含行程的开始和停止时间以及车站名称。然而,它们有时也包含只是“在公共(public)汽车站等候”的腿。这些可以通过开始时间与前一段的停止时间相同以及停止时间与下一段的开始时间相同的事实来识别。我想识别这些然后删除它们。我想知道集合,但公交车站的命名搞砸了,然后我想知道发电机。

所以有些粗糙,比如:

gen = (item for item in a) #turn list into generator object

try:
    while 1:
        if gen.next()[2] == gen.next()[0] and gen.next()[0]:
            print 'match'
except StopIteration:            
    print 'all done'

确实有效,但它很糟糕,不允许我识别原始元组的索引位置以将其删除。

非常希望有一种方法。

最佳答案

您可以遍历相邻腿的所有三元组并使用过滤掉不需要的腿

filtered_a = [a[0]]
for x, y, z in zip(a, a[1:], a[2:]):
    if x[2] != y[0] or y[2] != z[0]:
        filtered_a.append(y)
filtered_a.append(a[-1])

(此代码假定在a 中至少有两条腿。)

关于python - 比较 python 元组以查找在上一个和下一个元组中也找到的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822307/

相关文章:

python - python web.py模块中的web.session.Session是什么

python - 为什么 CherryPy 静态文件下载这么慢?

r - 如何获取列表中同名元素的平均值

python - 如何合并两个字典的字典列表

android - Android 列表中的 ArrayIndexOutOFBoundsException

python数字字符串比较

python - 解析数学表达式

c++ - 比较 vector 的元素

php - PHP 中相当于 Ruby 的 `__END__` 或 Perl 的 `__DATA__` 的构造

javascript - 将 Python 请求(在 Django views.py 中)Json 数据传递给 Javascript