0

我正在尝试将电子表格中两列的条目合并到 python 中的单个列表中。第一列包含每对中的第一个人,是提出问题的人,即提问者。第二个是回答的人:回答者。我希望列表看起来像这样:

[('Jack', 'Jill'), ('Jack', 'John'), ('Jack', 'Jason'), ('Jill', 'John')...]

但是,我的列表如下所示:

['(Jack, Jill)', '(Jack, John)', '(Jack, Jason)', '(Jack, john)'...]

关键区别在于,在第一个列表中,引号在括号的内侧,而在第二个列表中,引号在括号的外侧。

这是我的过程:

answerers = line['answerers'].split(" ")
for answerer in answerers:
    edgelist.append("(" + line['questioner'] + ", " + answerer + ")")

我应该做些什么不同的事情来让引号在里面,每个人周围,而不是在外面?

4

3 回答 3

1
edgelist.append((  line['questioner'] ,answerer))

假设我理解你的问题

于 2013-05-28T20:39:07.347 回答
1

例如,只需将它们保留为两个单独的列表,asker然后answerer执行此操作

>>> asker = ['Jack','Jack','Jack','Jill']
>>> answerer = ['Jill','John','Jason','John']
>>> finalList = zip(asker, answerer)
>>>
>>>
>>> finalList
[('Jack', 'Jill'), ('Jack', 'John'), ('Jack', 'Jason'), ('Jill', 'John')]
于 2013-05-28T20:45:46.520 回答
0

或者在一行中:

edgelist = [(line['answerer'], answerer) for answerer in answerers]
于 2013-05-28T20:48:52.930 回答