繁体   English   中英

在逗号分隔列表中搜索字符串

[英]Searching for string in comma separated list

该列表存在于 User.log 文件中。

我使用 python 从 User.log 文件中逐行提取了列表。

SHRAMIK,STUDENT,CSE,34, 
KESHAV,TEACHER,MECH,12
list = ['SHRAMIK,STUDENT,CSE,34', 'KESHAV,TEACHER,MECH,12']
search_value = "SHRAMIK"

我的代码:

with open('User.Log') as f:
    lines = f.read().splitlines()
    print(type(lines))
    data = lines[0].split(",")
    print("NEW LINES =============== >" ,lines)
    print("NEW DATA =============== >" , data , "Roll No FROM LIST IS :", data[3])

我的输出:

('NEW LINES =============== >', ['SHRAMIK,STUDENT,CSE,34', 'KESHAV,TEACHER,MECH,12'])
('NEW DATA =============== >', ['SHRAMIK,STUDENT,CSE,34'], 'Roll No FROM LIST IS :', '34'

所以我没有得到任何东西来搜索 NAME 并使用 Python 检索关于 NAME 的 ROLL NO。 请问你知道我应该如何解决这个问题吗?

您就快完成了 - 您将行拆分为其组件,现在您只需要将名称与搜索值进行比较:

with open('User.Log') as f:
    for line in f:
        parts = line.split(',')
        if line[0] == search_value:
             print('Rollno is ' + line[3])
             break;

你可以这样做。

with open('User.Log') as f:
    for data in f:
        if data.split(',')[0] == searchKey:
            print("Found student with Roll number {}".format(data.split(',')[3])
            break
    else:
        print("not found with name {}".format(searchKey))  #else is outside the for loop 

只有当循环没有break语句终止时才执行for/while之后的else块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM