首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当条件满足值对和列表时创建新列表

当条件满足值对和列表时创建新列表
EN

Stack Overflow用户
提问于 2017-07-04 20:17:26
回答 1查看 90关注 0票数 3

这是有史以来第一个问题。我已经尝试了大约一周的时间来寻找解决方案,但最终我不得不问了。我对这个问题的标题也持开放态度。

我正在使用python3

我有一个csv文件(legend.csv),其中包含两个头(键),一个用于数字,一个用于缩写。

每个缩写都有一个对应的数字,这在csv文件中表示。

我还有一个名字列表(list.txt),名字的第一部分通常是某种缩写。

该程序背后的想法是:我想分析csv文件,并在list.txt的名称中添加与缩写相对应的数字。如果可能的话,输出应该是一个新的文本文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
example of list.txt:
    addg-stuff
    cbdd-stuff
    abc-stuff
    add-stuff

example of legend.csv:
    number,abbr
    0001,addg
    0002,cbdd
    0003,abc
    0004,add


example of desired output:
    0003-abc-stuff
    0001-addg-stuff
    0004-add-stuff
    0002-cbdd-stuff

下面的代码找到了缩写,但我不知道如何将相应的数字添加到名称中。Easiest way to cross-reference a CSV file with a text file for common strings

上面的链接是我发现如何提取匹配字符串的地方,但不确定从哪里开始。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   import csv
   with open("legend.csv") as csvfile:
       reader = csv.reader(csvfile)
       searchstring = {row[1] for row in reader}
       num = {row[0] for row in reader}
   with open("list.txt") as txtfile:
       for names in txtfile:
           for i in searchstrings:
               if i in name:
                   matching = (name) #not sure where to go from here. If matching is printed, the names are found that contain the abbr.

这绝对是个新手,我刚开始使用python一个月左右。任何帮助都是非常感谢的,特别是如果你有任何好的资源来处理这种情况或一般的python。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-05 18:55:18

您可以尝试这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import csv

f1 = open('legend.csv')
f1 = csv.reader(f1) #splitting at instances of commas
f1 = list(f1) 

f2 = open('list.txt').read().splitlines() #reading every line in the txt file

for i in f2:
   for b in f1[1:]:
       if i.split("-")[0] == b[1]:
          print str(b[0])+"-"+i

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0001-addg-stuff
0002-cbdd-stuff
0003-abc-stuff
0004-add-stuff

在双for循环中,算法从txt文件中取出一行,然后从csv文件中取出一行。请注意,f1[1:]是列表切片。这意味着我们从csv文件中的头文件开始,这对我们解决问题没有帮助。从那里,算法尝试确定缩写是否包含在该行的第一部分中,在本例中存储为i。如果是,则以所需输出的样式打印数字和行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44913522

复制
相关文章
列表:创建列表
列表是Tcl语言中最重要的一种数据结构。什么是列表?列表是元素的有序集合,各个元素可以包含任何字符串,例如空格,反斜杠,换行符等。列表表现为特定结构的字符串,这意味着可以把它们赋值给一个变量,可以把它们做为参数传给命令,可以把它们嵌套到其他列表中。
Lauren的FPGA
2019/10/30
2.4K0
SharePoint 2010 新列表模板列表
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117742.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/11
7000
SharePoint 2010 新列表模板列表
Excel公式技巧20: 从列表中返回满足多个条件的数据
在实际工作中,我们经常需要从某列返回数据,该数据对应于另一列满足一个或多个条件的数据中的最大值。
fanjy
2020/03/25
9.3K0
Excel公式技巧20: 从列表中返回满足多个条件的数据
[Excel技巧]创建下拉列表
在单位用Excel做统计,想偷个小懒,比如食品一栏。能不能设计一个下拉列表,直接在列表框中选择,省去键盘的重复输入呢?
卷福同学
2023/04/28
2.3K0
[Excel技巧]创建下拉列表
列表渲染与条件渲染
相同的结构是列表渲染的前提,列表等都会有⼏千上万条的数据,它们的共同的特征就是数据的结构相同。
达达前端
2019/11/29
1.6K0
Java对List列表进行分组处理(对List列表固定分组/对List列表平均分组)
将一组数据平均分成n组 即:数据分组数固定为N,每组数据个数不定,每组个数由List列表数据总长度决定 /** * 将一组数据平均分成n组 * * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return */ public static <T> List<List<T>> averageAssign(List<T> source, int n) { List<List<T>> result = new Ar
目的地-Destination
2023/03/06
3.5K0
当 LinkedList 不是列表时,速度快的兔子都追不上!
一旦你被问到这种问题,也证明面试基本上泡汤了--面试官已经实在是找不到其他问题与你交流了。
xjjdog
2022/12/22
2840
当 LinkedList 不是列表时,速度快的兔子都追不上!
Python创建数字列表
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 10 1 sum is : 55
py3study
2020/01/03
1.3K0
【说站】Python如何在列表中添加新值
1、append()将元素添加到集合,insert()将元素插入指定的下标应用程序,返回值为None。
很酷的站长
2022/11/24
4.2K0
【说站】Python如何在列表中添加新值
Python实现对规整的二维列表中每个子列表对应的值求和
前几天在Python白银交流群有个叫【dcpeng】的粉丝问了一个Python列表求和的问题,如下图所示。
Python进阶者
2022/06/05
4.7K0
Python实现对规整的二维列表中每个子列表对应的值求和
访问列表中的值
#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7 ] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]
用户8442333
2021/05/27
5.6K0
FreeRTOS(八):列表和列表项
要想看懂 FreeRTOS 源码并学习其原理,有一个东西绝对跑不了,那就是 FreeRTOS 的列表和列表项。列表和列表项是 FreeRTOS 的一个数据结构,FreeRTOS 大量使用到了列表和列表项, 它是 FreeRTOS 的基石。要想深入学习并理解 FreeRTOS,那么列表和列表项就必须首先掌握, 否则后面根本就没法进行。
Jasonangel
2021/12/27
2.2K0
FreeRTOS(八):列表和列表项
如何对列表进行搜索
logic [31:0] ram_block[1024] = '{default:0}
Lauren的FPGA
2019/10/30
2.8K0
SharePoint2010新特性:InfoPath定义创建列表的界面
在SharePoint2007的时候,自定义的列表可以使用CAML修改其展示页面,但是对于创建列表的页面,不容易自定义。现在在SharePoint2010中,增强了InfoPath Form Services,我们可以使用InfoPath Designer来快速设置自定义列表的修改和展示页面。
深蓝studyzy
2022/06/16
7040
SharePoint2010新特性:InfoPath定义创建列表的界面
【动手实践】Oracle 12.2 新特性:自动的列表分区创建
2017年来了,我们要启动新的学习征程了。在过去我们一直思考,什么样的内容能够更帮助大家了解和学习到有用的知识? 这个『动手实践』栏目就是这样一个改进和尝试吧,一个小小的范例,几分钟的线上实践(感谢Oracle),就能帮助大家熟悉一个知识点,几个重要的命令。如此是否会有不一样的体验?试一试吧。 ---- 在Oracle Database 12.2 之前,如果使用列表分区,当插入的数据超过了分区列表值设定,则会抛出异常;而如果存在大量的列表值需要定义,则可能需要一一设置。 在12.2引入的新特性中 - Au
数据和云
2018/03/06
1.2K0
【动手实践】Oracle 12.2 新特性:自动的列表分区创建
【小程序】条件渲染与列表渲染
在小程序中,使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块:
陶然同学
2023/02/24
1K0
【小程序】条件渲染与列表渲染
Python中对列表和元组的切片操作
# python中对列表和元组的切片操作 # 代码 # 切片方法用于列表、元组,切片方法不能用于字典 list_tmp = [0, 1, 2, 3, 4] tuple_tmp = (4, 3, 2, 1, 0) # 列表输出 print([0, 1, 2, 3, 4][1:3]) print(list_tmp[1:3]) # 元组输出 print((4, 3, 2, 1, 0)[1:3]) print(tuple_tmp[1:3]) # 运行结果 [1, 2] [1, 2] (3, 2) (3, 2)
benym
2022/07/14
2.3K0
点击加载更多

相似问题

当满足特定条件时,从列表创建新列表

32

在python中,当满足特定条件时,从列表创建新列表

10

列表满足条件对值的字典数

30

满足条件时列表中的值之和

325

当满足某些条件时,如何只返回列表流?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文