Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
另一个模块globals()中的Python字典没有';不行_Python_Dictionary - Fatal编程技术网

另一个模块globals()中的Python字典没有';不行

另一个模块globals()中的Python字典没有';不行,python,dictionary,Python,Dictionary,file1.py a = {'fullname':'John Wick', 'Age': 35 , 'job':'Hitman'} b = {'fullname':'Mark Zuckerberg', 'Age': 30, 'job': 'Developer'} c = {'fullname':'Will smith', 'Age': 45, 'job': 'Actor'} d = {'fullname':'Messi' , 'Age': 28, 'job' : 'Player'} so on.

file1.py

a = {'fullname':'John Wick', 'Age': 35 , 'job':'Hitman'}
b = {'fullname':'Mark Zuckerberg', 'Age': 30, 'job': 'Developer'}
c = {'fullname':'Will smith', 'Age': 45, 'job': 'Actor'}
d = {'fullname':'Messi' , 'Age': 28, 'job' : 'Player'}
so on... and many more details 
注意:dict变量非常不同。 任务是从用户输入的“姓名”或“工作”中获取“年龄” 例如:用户输入梅西。。。他必须得到28分作为输出

File2.py

from File1.py import *
#what should the code be to access the age 

user_input=raw_input("enter a Name: ")

# user_input contains the name of the person I want to get the Age
我尝试过使用globals(),但它使我的情况复杂化了 它创建一个列表,然后必须通过integer访问该列表


是否有任何方法可以搜索dict中的值并与IF条件匹配???

是的,有一些方法可以做到这一点,但这会使情况变得复杂

首先,进一步简化您的程序:将远程代码拉入您的程序文件,并解决其中的访问问题。完成后,将其拆分为第二个文件

第二,如果您希望这些项目以一种您可以轻松搜索的形式出现,那么就这样做。此时,您特意将它们分离为不同的变量,而您显然希望将它们保持在一起。通过以下两种方式之一执行此操作:

(1) 简单列表:

people = [
    {'fullname':'John Wick', 'Age': 35 , 'job':'Hitman'},
    {'fullname':'Mark Zuckerberg', 'Age': 30, 'job': 'Developer'},
    {'fullname':'Will smith', 'Age': 45, 'job': 'Actor'},
    {'fullname':'Messi' , 'Age': 28, 'job' : 'Player'}
]
现在,使用常规列表搜索方法查找匹配项

(2) 字典,按您希望的使用方式编制索引:

people = {
    'John Wick': {'Age': 35 , 'job':'Hitman'},
    'Mark Zuckerberg': {'Age': 30, 'job': 'Developer'},
    'Will smith': {'Age': 45, 'job': 'Actor'},
    'Messi': {'Age': 28, 'job' : 'Player'}
}
这样,您就可以通过直接引用,
people[user\u input]
获得此人的记录

这会让您有所行动吗?

尝试将file1.py创建为file1.txt的备份,并对该文件执行操作

在这里分享一个有用的小片段

import re
user_input=raw_input("enter a Name: ")
with open("file1.txt") as f:
    for line in f:
       #print line
       matches = re.findall(r'\'(.+?)\'', line)
       if user_input in matches:
          age = re.findall(r'\d+', line)
          print age

我对File1.py导入的
感到惊讶*
works@MosesKoledoye这只是一个小例子,我正在以类似的方式处理4000行数据。将其重新排列成这种格式将耗费大量时间。那么,如果有什么方法可以简单地说明我的当前情况?您的数据在一个单独的文件中,有4000个不同的变量名?是的!!!!!!!!这不是数据类型,但您可以将类似的内容联系起来,如果您将第一个名为file1.py的文件更改为file1.txt,则可能是这样done@Argus很对,;不要以那种形式使用数据:将其读入字典或列表,然后从那里使用。如果数据不变,则可以将其存储为引用,但以首选形式存储。不,这不能解决问题!请运行一个脚本,看看您是否可以通过这种方式获取和输出。。。很抱歉,这个想法会失败。我还没有分享完整的代码。请尝试使用python中的正则表达式库从打印行逻辑开始,您一定会成功。正则表达式将做什么???从文件内容中查找用户输入!!好极了那么,这将如何解决获得我的年龄的用户输入??这个想法与我的预期相差甚远,但谢谢你的尝试。谢谢你更新的代码。。。但我想用字典处理数据。你的方法并不能解决这个问题,你真的很想,然后你必须用正则表达式将字符串转换成字典,这太复杂了,你说从file1.py操作它不可能像你给出数据的方式那样,所有的dict都应该在一个列表中进行迭代,以达到你的目的。顺便说一句,这段代码符合你的目的