小编Aru*_*han的帖子

Combinations of multiple lists

Suppose I have three lists:

list1 --> [a, b, c, d, e, f, g, h]
list2 --> [i, j, k]
list3 --> [l, m, n, o, p]
Run Code Online (Sandbox Code Playgroud)

I wish to generate all combinations where I take five elements from list1, two elements from list2 and three elements from list3.

eg.

a, b, c, d, e, i, j, l, m, n  
a, b, c, d, e, i, j, l, m, o
etc.
Run Code Online (Sandbox Code Playgroud)

I tried to use itertools.combinations.

l1_combinations = itertools.combinations(list1, 5) …
Run Code Online (Sandbox Code Playgroud)

python

10
推荐指数
2
解决办法
405
查看次数

使用键/连接列中的重复条目执行完全外连接的命令

我有三个文件。我需要根据一列加入它们并执行一些转换。

file1.dat(第1列用于加入)

123,is1,ric1,col1,smbc1  
123,is2,ric1,col1,smbc1  
234,is3,ric3,col3,smbc2  
345,is4,ric4,,smbc2  
345,is4,,col5,smbc2 
Run Code Online (Sandbox Code Playgroud)

file2.dat(第1列用于加入)

123,abc  
234,bcd  
Run Code Online (Sandbox Code Playgroud)

file3.dat(第4列用于加入)

r0c1,r0c2,r0c3,123,r0c5,r0c6,r0c7,r0c8  
r2c1,r2c2,r2c3,123,r2c5,r2c6,r2c7,r2c8  
r3c1,r3c2,r3c3,234,r3c5,r3c6,r3c7,r3c8  
r4c1,r4c2,r4c3,345,r4c5,r4c6,r4c7,r4c8   
Run Code Online (Sandbox Code Playgroud)

预期输出 (output.dat)

123,r0c5,is1,ric1,smbc1,abc,r0c8,r0c6,col1,r0c7,r0c1,r0c2,r0c3  
123,r0c5,is2,ric1,smbc1,abc,r0c8,r0c6,col1,r0c7,r0c1,r0c2,r0c3  
123,r2c5,is1,ric1,smbc1,abc,r2c8,r2c6,col1,r2c7,r2c1,r2c2,r2c3  
123,r2c5,is2,ric1,smbc1,abc,r2c8,r2c6,col1,r2c7,r2c1,r2c2,r2c3  
234,r3c5,is3,ric3,smbc2,bcd,r3c8,r3c6,col3,r3c7,r3c1,r3c2,r3c3  
345,r4c5,is4,ric4,smbc2,N/A,r4c8,r4c6,N/A,r4c7,r4c1,r4c2,r4c3  
345,r4c5,is4,N/A,smbc2,N/A,r4c8,r4c6,col5,r4c7,r4c1,r4c2,r4c3 
Run Code Online (Sandbox Code Playgroud)

我写了以下 awk 命令。

awk '
BEGIN {FS=OFS=","}
FILENAME == ARGV[1] { temp_join_one[$1] = $2"|"$3"|"$4"|"$5; next}
FILENAME == ARGV[2] { exchtbunload[$1] = $2; next}
FILENAME == ARGV[3] { s_temp_join_one = temp_join_one[$4];
split(s_temp_join_one, array_temp_join_one,"|");
v3=(array_temp_join_one[1]==""?"N/A":array_temp_join_one[1]);
v4=(array_temp_join_one[2]==""?"N/A":array_temp_join_one[2]);
v5=(array_temp_join_one[4]==""?"N/A":array_temp_join_one[4]);
v6=(exchtbunload[$4]==""?"N/A":exchtbunload[$4]);
v9=(array_temp_join_one[3]==""?"N/A":array_temp_join_one[3]);
v11=($2=""?"N/A":$2);
print $4, $5, v3, v4, v5, v6, $8, $6, v9, $7, $1, v11, $3 > …
Run Code Online (Sandbox Code Playgroud)

unix scripting awk

0
推荐指数
1
解决办法
166
查看次数

标签 统计

awk ×1

python ×1

scripting ×1

unix ×1