我试图找到2个字典列表之间的区别.我在这个论坛中找到了一些信息,但没有达到我的目的.
incoming_rows = [{'column_name': 'LOAD_ID', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'ROW_NUMBER', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'CREATE_DATE', 'data_type': 'VARCHAR(20)', 'table_name': 'CONFIG'},
{'column_name': 'CONFIG_TYPE', 'data_type': 'varchar(1)', 'table_name': 'CONFIG'},
{'column_name': 'CONFIG_ID', 'data_type': 'numeric(10,0)', 'table_name': 'CONFIG'}
]
available_row = [{'column_name': 'LOAD_ID', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'ROW_NUMBER', 'data_type': 'int', 'table_name': 'CONFIG'},
{'column_name': 'CREATE_DATE', 'data_type': 'date', 'table_name': 'CONFIG'}
]
Run Code Online (Sandbox Code Playgroud)
在这里,我需要将incoming_rows与available_row字典列表进行比较,差异想要列在另一个dict格式列表中.这里我的表名是唯一的.条件:1.任何新添加的列.2.数据类型的任何更改如果这两个条件为真,则expected_row应仅包含这些已更改的行.
# expected output
expected_row=[{'column_name': 'CONFIG_TYPE', 'data_type': 'varchar(1)', 'table_name': 'CONFIG'},
{'column_name': 'CONFIG_ID', 'data_type': 'numeric(10,0)', 'table_name': 'CONFIG'},
{'column_name': 'CREATE_DATE', 'data_type': 'VARCHAR(20)', 'table_name': 'CONFIG'}
]
Run Code Online (Sandbox Code Playgroud) 我有一个url列表:file_url_list,打印到这个:
www.latimes.com, www.facebook.com, affinitweet.com, ...
Run Code Online (Sandbox Code Playgroud)
还有另一个Top 1M url的列表:top_url_list,打印到这个:
[1, google.com], [2, www.google.com], [3, microsoft.com], ...
Run Code Online (Sandbox Code Playgroud)
我想找到多少网址中file_url_list都在top_url_list.我写了下面的代码,但我知道这不是最快的方法,也不是最蟒蛇的方法.
# Find the common occurrences
found = []
for file_item in file_url_list:
for top_item in top_url_list:
if file_item == top_item[1]:
# When you find an occurrence, put it in a list
found.append(top_item)
Run Code Online (Sandbox Code Playgroud)
我怎样才能以更高效,更pythonic的方式写出来?
如果你有两对值,开始和结束 - 你如何计算它们的重叠位置?
即,如果开始和结束值对是
[10,20],[15,20]
在这种情况下compute_overlap((15,20),(10,20))应该返回,(15,20)因为这是重叠的地方.
做这个的最好方式是什么?
如果我有名单:
a = [1, 2, 3, 4, 5]
b = [4, 5, 6, 7, 8]
c = a * b
Run Code Online (Sandbox Code Playgroud)
应该给我:
c = [4, 5]
Run Code Online (Sandbox Code Playgroud)
和
c = a - b
Run Code Online (Sandbox Code Playgroud)
应该给我:
c = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这可用于Python还是我必须自己编写?
为元组做同样的工作吗?我可能会使用列表,因为我将添加它们,但只是想知道.
我有2个列表一个:
[(12,23),(12,45),(12,23),(2,5),(1,2),(2,4),(7,34)] 最多约1000个元素和另一个元素:
[(12,23),(12,45),(12,23),(2,5),(1,2),(2,66),(34,7)] 最多可达241个元素.
我想要的是检查列表是否包含任何相同的元素,然后将它们放在一个新的列表中.
所以新的名单变成了
[(12,23),(12,45),(12,23),(2,5),(1,2)]
我有两个形状相同的清单清单。
list1 = [[1,2,3], [], [4,5], []]
list2 = [[1,2], [7], [4,5], []]
Run Code Online (Sandbox Code Playgroud)
我需要以下列表列表:
[[1,2], [], [4,5], []]
Run Code Online (Sandbox Code Playgroud)
我如何得到它?
PS:这些主题对我没有帮助:
python ×6
list ×3
python-3.x ×2
algorithm ×1
dictionary ×1
difference ×1
intersection ×1
tuples ×1