【发布时间】:2026-01-01 11:25:01
【问题描述】:
我正在尝试使用此处的程序将复制和粘贴的列表从 excel 转换为我可以在 Python 中使用连接操作的列表。当我输入多个列/行值时,我得到一个我在操作时遇到问题的列表。请看下面的例子:
- 程序如下:
def detail_input():
try:
while True:
data=raw_input()
if not data: break
yield data
except KeyboardInterrupt:
return
- 原始输入从 excel 复制到 unix 命令行:
123 56
321 42
987 24
- 然后我得到如下所示的回报:
userInput = list(detail_input())
[['123\t56'],['321\t42'],['987\t24']]
- 我想要的输出如下所示:
组是 123,他们的个人资料是 56
该组是 321,他们的个人资料是 42
该组是 987,他们的个人资料是 24
我尝试使用以下内容删除制表符分隔符:
values = list(csv.reader(userInput, delimiter='\t'))
- 但它将列表转换为元组,我无法提取单个值 - 我只能提取每个括号内的两个值:\
[['123','56'],['321','42'],['987','24']]
如果您有任何想法,请提供帮助
【问题讨论】:
-
您是否有理由不使用 pandas 及其 excle 阅读器?另一种方法是将 excle sheed 导出为 .csv,然后再次使用 csv 模块或 pandas 使用这个?如果您只想知道如何格式化:
for ele in test: e1, e2 = ele[0].split('\t') print(f'the group is {e1} and their profile {e2}') -
你的问题只是如何将 [['123\t56'],['321\t42'],['987\t24']] 格式化成一个句子吗?你不能只获取每个字符串,然后使用 .split('\t') 来分隔它吗?
-
[print("the group is {} and their profile is {}".format(each[0], each[1])) for each in values]你可以在values = list(csv.reader(userInput, delimiter='\t'))下面添加上面的行,你就会得到你需要的东西 -
@wolfstter 我不能使用 pandas,因为我在工作环境中这样做,并且出于某种原因他们不允许我们导入该包
-
@shivankgtm 这行得通!谢谢:)
标签: python list tuples concatenation