Python 如何根据第二个文件对一个csv文件进行排序?
我有两个文件 F1 F2 我想根据F1对F2进行排序,F2中的每一行,如果第一个元素在F1中不存在,应该添加到结果列表的末尾。因此,我得到:Python 如何根据第二个文件对一个csv文件进行排序?,python,csv,awk,Python,Csv,Awk,我有两个文件 F1 F2 我想根据F1对F2进行排序,F2中的每一行,如果第一个元素在F1中不存在,应该添加到结果列表的末尾。因此,我得到: "bar","spam","orange" "bar","orange","blue" "foo","apple","green" "foo","blue","apple" "egg","apple","green" "egg","orange","red" "egg","apple","green" "bacon","red","orange" "spa
"bar","spam","orange"
"bar","orange","blue"
"foo","apple","green"
"foo","blue","apple"
"egg","apple","green"
"egg","orange","red"
"egg","apple","green"
"bacon","red","orange"
"spam","apple","yellow"
"spam","green","egg"
我想要一个蟒蛇3的解决方案。但我也愿意在awk中寻求解决方案。请尝试以下内容,并让我知道这是否对您有帮助。假设您希望将F2文件的第一个字段的第一个字段与F1文件的第一个字段进行匹配,根据显示的示例,F1文件的第一个字段本身只有一个字段
awk -F'"' '
FNR==NR{
a[$2]=(a[$2]?a[$2] ORS:"")$0;
b[$2];
next
}
($0 in b){
print a[$0];
c[$0]
}
END{
for(i in a){
if(!(i in c)){ print a[i] }
}}' F2 F1
输出:
类似sortedthe_列表,key=lambda x:intx不在其他_列表中。到目前为止,您尝试了什么?如果您展示您的解决方案会很好。F1中没有F2行。你是说元素?是的元素,修复了它
"bar","spam","orange"
"bar","orange","blue"
"foo","apple","green"
"foo","blue","apple"
"egg","apple","green"
"egg","orange","red"
"egg","apple","green"
"bacon","red","orange"
"spam","apple","yellow"
"spam","green","egg"
awk -F'"' '
FNR==NR{
a[$2]=(a[$2]?a[$2] ORS:"")$0;
b[$2];
next
}
($0 in b){
print a[$0];
c[$0]
}
END{
for(i in a){
if(!(i in c)){ print a[i] }
}}' F2 F1
list1=['bar','foo','egg']
list2=[["egg","apple","green"],
["egg","orange","red"],
["egg","apple","green"],
["bar","spam","orange"],
["bar","orange","blue"],
["bacon","red","orange"],
["foo","apple","green"],
["foo","blue","apple"],
["spam","apple","yellow"],
["spam","green","egg"]]
list_to_sort=[]
list_not_to_sort=[]
for element in list2:
if(element[0].split(',')[0] in list1):
list_to_sort.append(element)
else:
not_to_sort.append(element)
list_to_sort.sort()
print(list_to_sort+not_to_sort)
[['bar', 'orange', 'blue'],
['bar', 'spam', 'orange'],
['egg', 'apple', 'green'],
['egg', 'apple', 'green'],
['egg', 'orange', 'red'],
['foo', 'apple', 'green'],
['foo', 'blue', 'apple'],
['bacon', 'red', 'orange'],
['spam', 'apple', 'yellow'],
['spam', 'green', 'egg']]