【发布时间】:2018-05-13 15:21:51
【问题描述】:
问题描述
我有一个 csv 文件,其中包含 3 位信息,如下所示,用逗号分隔。我有我的代码,如果我完全按照写入的方式输入第一个值,则该代码当前会返回我想要的第二个和第三个值。
如果输入为 25.803.1.1,我的用户输入示例确实告诉我 name = BALLOON 并且连接等于 357。我想在用户输入 25.803.1.1 的情况下进行这项工作,它会建议连接等于 357,但如果用户输入 25.803。它会给出所有匹配 25.803 的连接总和。如果用户输入 25. 它将给出以 25 开头的所有内容的连接总和。
所以我假设我需要一个 if 语句来查看是否有 1 个小数位或 2 个小数位或 3 个小数位,然后打印出结果。我不确定是否最好进行某种分组、过滤或匹配,或者我是否需要创建一个新列表,将日期的第一位按十进制拆分为一个看起来像 [[25] 的列表, [803], [1], [1]] 例如,然后尝试根据用户以某种方式输入的内容对其进行索引。非常感谢任何帮助。
如果输入为 25.803.1.1 则有效的当前代码
with open("D:/Python/Data/rttData.csv") as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
enbIDs = []
enbNames = []
enbRRCs = []
for row in readCSV:
enbID = row[0]
enbName = row[1]
enbRRC = row[2]
enbNames.append(enbName)
enbIDs.append(enbID)
enbRRCs.append(enbRRC)
siteSelection = input('Enter the eNB number below to search for [ex: 25.803.1.1]')
enbIndex = enbIDs.index(siteSelection)
theName = enbNames[enbIndex]
theRRC = enbRRCs[enbIndex]
print('The name of site', siteSelection, 'is:', theName,'and the RRC Connections are:',theRRC)
CSV 文件
25.803.1.1,BALLOON,357
25.803.2.1,BALLOON,1941
25.803.3.1,BALLOON,3802
25.803.12.2,BALLOON,18783
25.803.22.2,BALLOON,20136
25.803.32.2,BALLOON,17560
25.803.14.4,BALLOON,2661
25.803.24.4,BALLOON,3472
25.803.34.4,BALLOON,4379
25.804.1.1,BANK,8410
25.804.2.1,BANK,7656
25.804.3.1,BANK,9822
25.804.12.2,BANK,9418
25.804.22.2,BANK,20522
25.804.32.2,BANK,14694
25.804.14.4,BANK,17569
25.804.24.4,BANK,16137
25.804.34.4,BANK,13835
【问题讨论】:
-
enbIDs.index(siteSelection)返回 one 项的索引(如果找到),以及确切的一项。使用列表推导、枚举和测试,您可以生成匹配条件的索引列表。 -
不要修改您的问题以获得更多信息,请提出一个单独的问题。随意交叉引用这些问题,以便于查找。 示例:在问题 A 中添加对问题 B 的引用,在问题 B 中添加对问题 A 的引用。
标签: python python-3.x csv