如果我输入了一些字符串,为什么不能获得预期的正确ID

2024-05-28 20:30:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件:

这里,id是唯一的,而Name可能是可重复的

Name    id
Ajay    1
Ram     2
Ajay    3
Ram     4
Jack    6
Devid   7

我编写以下程序来实现我的目标:例如

  • 若用户输入名称ajay,那个么程序将返回ID列表[1,3]
  • 如果用户输入name Ram,程序将返回id列表[2,4]

我的代码:

if __name__ == '__main__':
    print('hi')
    file1=open('data.txt','r')
    set1=[]
    for line in file1:
        line=line.strip()
        set2=list(line.split(' '))
        set1.append(set2)
    print(set1)

为什么它不起作用


Tags: 文件用户name程序id列表linefile1
1条回答
网友
1楼 · 发布于 2024-05-28 20:30:48

这可以通过python的库pandas轻松完成:

In [1952]: df = pd.read_fwf('file.txt')

In [1953]: df
Out[1953]: 
    Name   id
0   Ajay  1.0
1  Ram 2  NaN
2   Ajay  3.0
3  Ram 4  NaN
4   Jack  6.0
5  Devid  7.0

In [1957]: df[df.Name == 'Ajay']['id'].tolist()
Out[1957]: [1.0, 3.0]

只需将Ajay替换为从用户处获取输入的变量即可

代码将更干净、更小。让我知道这是否有帮助

相关问题 更多 >

    热门问题