英文:
split 3 values seperated by commas into 3 different pairs
问题
Sure, here is the translated code:
我想将用逗号分隔的3个值
a = 'a,b,c'
拆分成3对不同的值:
(a,b), (b,c), (a,c)
我该如何在Python中实现这个目标?
我尝试了
n = [(x) for x in a.split(',')]
x = list(zip(n[1::], n[0::2]))
但我只得到了一对: `('a', 'b')`
英文:
I'd like to split 3 values separated by commas
a = 'a,b,c'
into 3 different pairs:
(a,b), (b,c), (a,c)
How would I be able to do this on Python?
I have tried
n = [(x) for x in a.split(',')]
x = list(zip(n[1::], n[0::2]))
I get one pair: ('a', 'b')
答案1
得分: 2
以下是翻译好的部分:
尝试使用itertools中的combinations:
from itertools import combinations
a = 'a,b,c'
a = a.split(",")
for group in combinations(a,2):
print(group)
输出:
('a', 'b')
('a', 'c')
('b', 'c')
英文:
Try using combinations from itertools:
from itertools import combinations
a = 'a,b,c'
a = a.split(",")
for group in combinations(a,2):
print(group)
Output:
('a', 'b')
('a', 'c')
('b', 'c')
答案2
得分: 1
Sure, here's the translated content:
如果您愿意使用库,您可以使用itertools
中的combinations
。Itertools文档
在这种情况下,它将非常简单:
from itertools import combinations
csv='a,b,c'
combinations(csv.split(','),2)
# [('a', 'b'), ('a', 'c'), ('b', 'c')]
Bibhav比我提前发布了答案,尽管他们的答案使用排列允许重复,例如'('a','b'),('b','a')',而组合则不允许。根据您的用例,可以选择哪种方法。
英文:
If you're open to using libraries, you can use combinations
from itertools
. Itertools documentation
In this case, it would be as simple as:
from itertools import combinations
csv='a,b,c'
combinations(csv.split(','),2)
#[('a', 'b'), ('a', 'c'), ('b', 'c')]
Bibhav beat me to posting, though their answer with permutations allows duplications, e.g. '('a','b'),('b','a') whereas combinations does not. Up to your use case which is preferred.
答案3
得分: 0
I am not sure what the logic is behind grouping these pairs together:
(a,b), (b,c), (a,c)
However, if you wanted to group each element with every other element you can use this:
a = 'a,b,c'
my_list = a.split(',')
new_list = []
for i in my_list:
for j in my_list:
if i != j:
new_list.append((i,j))
And you will get
[('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]
英文:
I am not sure what the logic is behind grouping these pairs together:
(a,b), (b,c), (a,c)
However, if you wanted to group each element with every other element you can use this:
a = 'a,b,c'
my_list = a.split(',')
new_list = []
for i in my_list:
for j in my_list:
if i != j:
new_list.append((i,j))
And you will get
[('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论