【问题标题】:Concatenate the values of a list after inputting multiple column / row raw input in python在python中输入多列/行原始输入后连接列表的值
【发布时间】: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


【解决方案1】:

你可以这样做。

values = list(csv.reader(userInput, delimiter='\t'))
# add the following line to print what you need.
[print("the group is {} and their profile is {}".format(each[0], each[1])) for each in values]

或者像下面这样简单的东西。

values = list(csv.reader(userInput, delimiter='\t'))

for each in values:
    group = each[0]
    profile = each[1]
    print("the group is {} and their profile is {}".format(group,profile))

【讨论】:

    【解决方案2】:

    如果格式是稳定的(总是像\d+\t\d+,所以是一个数字,然后是制表符,然后是另一个数字)你可以这样做

    values = {sub_list[0].split('\t')[0]: sub_list[0].split('\t')[1] for sub_list in userInput}
    

    获取字典

    然后类似

    for key, value in values.items():
        print(f'the group is {key} and their profile is {value}')
    

    但这种方法一开始并不是一个好的方法,您最好从 excel 导出 csv 或 tsv 文件并使用 csv 库读取数据。

    【讨论】:

      最近更新 更多