Python使用join拼接列表输出含括号问题求助
问题解决
问题出在csv.reader返回的每一行row本身是列表类型(哪怕每行只有一个IP地址),你直接把整个row添加到ip_addr列表里,最终ip_addr变成了「列表的列表」。当你用map(str, ip_addr)转换时,每个子列表会被转成类似['1.1.1.1']的字符串形式,拼接后自然会带括号和引号。
修正方案
方法1:直接取每行的第一个元素
修改循环里的追加逻辑,只把每行的第一个元素(也就是目标IP地址)加入列表:
import csv data_file = csv.reader(open('data.csv','r')) ip_addr = [] for row in data_file: # 假设每行仅包含一个IP,取列表的第一个元素 ip_addr.append(row[0]) combine_ips = ','.join(ip_addr)
方法2:用列表推导式简化代码(推荐)
同时用with语句管理文件,避免资源泄漏:
import csv with open('data.csv','r') as f: data_reader = csv.reader(f) # 直接提取每行的第一个元素生成IP列表 ip_list = [row[0] for row in data_reader] combine_ips = ','.join(ip_list)
执行后combine_ips就是你期望的字符串:1.1.1.1,1.1.1.2,1.1.1.3
内容的提问来源于stack exchange,提问作者Manik
相关产品推荐
相关产品推荐

