📜  Python – 为元组记录添加前缀

📅  最后修改于: 2022-05-13 01:54:52.258000             🧑  作者: Mango

Python – 为元组记录添加前缀

有时,在使用Python列表时,我们可能会遇到需要查找以特定元组记录开头的所有元组的问题。这类问题可以在数据领域找到应用。让我们讨论可以执行此任务的某些方式。
方法 #1:使用列表理解 + zip() + all()
上述功能的组合可以用来解决这个问题。在此,我们使用 all() 执行检查任务,该任务检查所有前缀元素是否与使用 zip() 使用前缀压缩的元素相等。列表推导用于执行所有元素。

Python3
# Python3 code to demonstrate working of
# Prefix tuple records
# Using list comprehension + zip() + all()
 
# initializing list
test_list = [('Gfg', 'best', 'geeks'), ('Gfg', 'good'),
             ('Gfg', 'best', 'CS'), ('Gfg', 'love')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing prefix tuple
pref_tup = ('Gfg', 'best')
 
# Prefix tuple records
# Using list comprehension + zip() + all()
res = [tup for tup in test_list if all(x == y for x, y in
                                     zip(tup, pref_tup))]
 
# printing result
print("The filtered tuples : " + str(res))


Python3
# Python3 code to demonstrate working of
# Prefix tuple records
# Using filter() + lambda + generator expression + all()
 
# initializing list
test_list = [('Gfg', 'best', 'geeks'), ('Gfg', 'good'),
                 ('Gfg', 'best', 'CS'), ('Gfg', 'love')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing prefix tuple
pref_tup = ('Gfg', 'best')
 
# Prefix tuple records
# Using filter() + lambda + generator expression + all()
res = list(filter(lambda sub: all([sub[idx] == ele
      for idx, ele in enumerate(pref_tup)]), test_list))
 
# printing result
print("The filtered tuples : " + str(res))


输出 :

原来的列表是:[('Gfg', 'best', 'geeks'), ('Gfg', 'good'), ('Gfg', 'best', 'CS'), ('Gfg', '爱')]
过滤后的元组:[('Gfg', 'best', 'geeks'), ('Gfg', 'best', 'CS')]


方法 #2:使用 filter() + lambda + 生成器表达式 + all()
上述功能的组合可用于解决此特定问题。在此,我们使用 filter() 执行过滤任务并使用 lambda 函数执行逻辑编译。

Python3

# Python3 code to demonstrate working of
# Prefix tuple records
# Using filter() + lambda + generator expression + all()
 
# initializing list
test_list = [('Gfg', 'best', 'geeks'), ('Gfg', 'good'),
                 ('Gfg', 'best', 'CS'), ('Gfg', 'love')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing prefix tuple
pref_tup = ('Gfg', 'best')
 
# Prefix tuple records
# Using filter() + lambda + generator expression + all()
res = list(filter(lambda sub: all([sub[idx] == ele
      for idx, ele in enumerate(pref_tup)]), test_list))
 
# printing result
print("The filtered tuples : " + str(res))
输出 :

原来的列表是:[('Gfg', 'best', 'geeks'), ('Gfg', 'good'), ('Gfg', 'best', 'CS'), ('Gfg', '爱')]
过滤后的元组:[('Gfg', 'best', 'geeks'), ('Gfg', 'best', 'CS')]