Python 从列表中分离变量后引用变量
我要走了Python 从列表中分离变量后引用变量,python,Python,我要走了 input = "12345_usa_wool_10x10_100_80.jpg" def CleanData(input): data = input.split('_') sku = data[0] country = data[1].capitalize() material = data[2].capitalize() size = data[3] retail_price = data[4] sale_price =
input = "12345_usa_wool_10x10_100_80.jpg"
def CleanData(input):
data = input.split('_')
sku = data[0]
country = data[1].capitalize()
material = data[2].capitalize()
size = data[3]
retail_price = data[4]
sale_price = data[5]
CleanData(input)
print (sku)
print (country)
我试图将所有的值存储在我创建的列表中,以便以后轻松地引用它们
比如说,如果他们想要全部储蓄,我可以在以后做类似的事情
NameError: name 'sku' is not defined
因此,我可以在以后得到类似以下内容的最终输出:
def Saving()
total_saving = retail_price-sale_price
return total_saving
我是一个初学者和自学者,所以我认为这不是一个太难的问题,但我不知道如何让sku、国家、材料等能够被公开引用。您拥有的是python范围,sku
,以及函数中分配的所有其他变量,都是函数的本地变量。如果希望它们是全局的,则将其标记为:
print (sku+" "+country+" "+sale_price+" "+Saving())
然而,以这种方式使用全局变量通常不是一个好主意。我们希望我们的函数被封装,以便它们可以在许多程序中使用。使用globals的问题是,您必须知道该名称不会用于程序中的其他内容。如果您需要在程序之间重用代码,那么这将中断
解决方案是返回某种容器。例如,它可以是字典、列表或元组。下面是一个使用元组的示例:
def CleanData(input):
data = input.split('_')
global sku
sku = data[0]
.... and so on
您可能只需返回数据
,就可以进一步简化此过程。此外,您可能希望测试len(data)
,以确保字段数正确。您拥有的是python作用域,sku
,以及函数中指定的所有其他变量都是函数的局部变量。如果希望它们是全局的,则将其标记为:
print (sku+" "+country+" "+sale_price+" "+Saving())
然而,以这种方式使用全局变量通常不是一个好主意。我们希望我们的函数被封装,以便它们可以在许多程序中使用。使用globals的问题是,您必须知道该名称不会用于程序中的其他内容。如果您需要在程序之间重用代码,那么这将中断
解决方案是返回某种容器。例如,它可以是字典、列表或元组。下面是一个使用元组的示例:
def CleanData(input):
data = input.split('_')
global sku
sku = data[0]
.... and so on
您可能只需返回数据
,就可以进一步简化此过程。此外,您可能希望测试len(data)
,以确保字段数正确。您拥有的是python作用域,sku
,以及函数中指定的所有其他变量都是函数的局部变量。如果希望它们是全局的,则将其标记为:
print (sku+" "+country+" "+sale_price+" "+Saving())
然而,以这种方式使用全局变量通常不是一个好主意。我们希望我们的函数被封装,以便它们可以在许多程序中使用。使用globals的问题是,您必须知道该名称不会用于程序中的其他内容。如果您需要在程序之间重用代码,那么这将中断
解决方案是返回某种容器。例如,它可以是字典、列表或元组。下面是一个使用元组的示例:
def CleanData(input):
data = input.split('_')
global sku
sku = data[0]
.... and so on
您可能只需返回数据
,就可以进一步简化此过程。此外,您可能希望测试len(data)
,以确保字段数正确。您拥有的是python作用域,sku
,以及函数中指定的所有其他变量都是函数的局部变量。如果希望它们是全局的,则将其标记为:
print (sku+" "+country+" "+sale_price+" "+Saving())
然而,以这种方式使用全局变量通常不是一个好主意。我们希望我们的函数被封装,以便它们可以在许多程序中使用。使用globals的问题是,您必须知道该名称不会用于程序中的其他内容。如果您需要在程序之间重用代码,那么这将中断
解决方案是返回某种容器。例如,它可以是字典、列表或元组。下面是一个使用元组的示例:
def CleanData(input):
data = input.split('_')
global sku
sku = data[0]
.... and so on
您可能只需返回
数据
,就可以进一步简化此过程。此外,您可能希望测试len(data)
,以确保字段数正确。sku
仅在CleanData
函数中定义,其范围不在该函数之外
我建议改用dict
对象。例如:
def CleanData(input):
data = input.split('_')
# sku, country, material, size, retail_price, sale_price
return (data[0],
data[1].capitalize(),
data[2].capitalize(),
data[3],
data[4],
data[5])
sku, country, material, size, retail_price, sale_price = CleanData(input)
print (sku)
print (country)
您还可以直接构造dict
:
def parseData(input):
data = input.split('_')
d = {}
d['sku'] = data[0]
d['country'] = data[1].capitalize()
d['material'] = data[2].capitalize()
d['size'] = data[3]
d['retail_price'] = data[4]
d['sale_price'] = data[5]
return d
myData = parseData(input)
print(myData['sku'])
print(myData['country'])
sku
仅在CleanData
功能中定义,其范围不在该功能之外
我建议改用dict
对象。例如:
def CleanData(input):
data = input.split('_')
# sku, country, material, size, retail_price, sale_price
return (data[0],
data[1].capitalize(),
data[2].capitalize(),
data[3],
data[4],
data[5])
sku, country, material, size, retail_price, sale_price = CleanData(input)
print (sku)
print (country)
您还可以直接构造dict
:
def parseData(input):
data = input.split('_')
d = {}
d['sku'] = data[0]
d['country'] = data[1].capitalize()
d['material'] = data[2].capitalize()
d['size'] = data[3]
d['retail_price'] = data[4]
d['sale_price'] = data[5]
return d
myData = parseData(input)
print(myData['sku'])
print(myData['country'])
sku
仅在CleanData
功能中定义,其范围不在该功能之外
我建议改用dict
对象。例如:
def CleanData(input):
data = input.split('_')
# sku, country, material, size, retail_price, sale_price
return (data[0],
data[1].capitalize(),
data[2].capitalize(),
data[3],
data[4],
data[5])
sku, country, material, size, retail_price, sale_price = CleanData(input)
print (sku)
print (country)
您还可以直接构造dict
:
def parseData(input):
data = input.split('_')
d = {}
d['sku'] = data[0]
d['country'] = data[1].capitalize()
d['material'] = data[2].capitalize()
d['size'] = data[3]
d['retail_price'] = data[4]
d['sale_price'] = data[5]
return d
myData = parseData(input)
print(myData['sku'])
print(myData['country'])
sku
仅在CleanData
功能中定义,其范围不在该功能之外
我建议改用dict
对象。例如:
def CleanData(input):
data = input.split('_')
# sku, country, material, size, retail_price, sale_price
return (data[0],
data[1].capitalize(),
data[2].capitalize(),
data[3],
data[4],
data[5])
sku, country, material, size, retail_price, sale_price = CleanData(input)
print (sku)
print (country)
您还可以直接构造dict
:
def parseData(input):
data = input.split('_')
d = {}
d['sku'] = data[0]
d['country'] = data[1].capitalize()
d['material'] = data[2].capitalize()
d['size'] = data[3]
d['retail_price'] = data[4]
d['sale_price'] = data[5]
return d
myData = parseData(input)
print(myData['sku'])
print(myData['country'])
谢谢,迪克特正是我需要的谢谢,迪克特正是我需要的谢谢,迪克特正是我需要的谢谢,迪克特正是我需要的