gpt4 book ai didi

linux - 即使既没有定义字符串也没有定义列表,如何将字符串引用到列表数组?

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:50 26 4
gpt4 key购买 nike

我会尽量给出一个很好的描述,因为我花了 5 分钟才总结出我的问题的连贯标题。

我正在为一个更大的项目创建一个托管在 centos7 服务器上的 SDK,不需要有关它的详细信息,因为它不相关。我想要实现的是:

  • 创建一个包含字符串的列表。
  • 在方法中调用列表作为参数。
  • 不是将列表数组分配给字符串(示例(foo = myList[0])),而是能够仅通过调用字符串直接使用列表中的字符串,而不必将字符串作为参数包含在说的方法。

我将尝试举例说明我难以解释的内容。

所以基本上,我想以某种方式预定义 myList 中的字符串,这样我就可以直接调用方法中的字符串,并将列表作为参数。

我对 python 和一般编程还很陌生,所以我的整体知识非常有限。这里可能有一个明显的解决方案,但我似乎无法通过谷歌搜索找到它。

首先想到的就是在任何方法之外预定义字符串

(
foo = myList[0]
def method2(myList):
print foo

output> myList[0] is printed
)

但这只会在加载运行脚本时提示错误,因为列表或字符串都不是立即定义的,而是通过一系列其他脚本定义的。

def method1():

foo = "thisisfoo"
bar = "thisisbar"

myList = [foo, bar]
method2(myList)

def method2(myList):
print foo

最佳答案

给定一个设置了一些变量的method1,您可以将它们发送到下一个方法:

def method1():

foo = "thisisfoo"
bar = "thisisbar"

myList = [foo, bar]
method2(myList, foo)

def method2(myList, foo):
print foo

不清楚您需要列表的用途,但请发送您需要的内容。

更改调用代码也可以只获取字符串:

    # as before
method2(foo)

def method2(foo):
print foo

现在,我怀疑还有更多上下文。如果您希望能够从几个地方访问一个变量,您可以使用一个类。

class Data
def __init__(self):
self.foo = "thisisfoo"
self.bar = "thisisbar"

self.myList = [foo, bar]

def method(self):
print self.foo

然后你可以创建一个实例并调用方法:

    data = Data()
data.method()

(Data 可能不是做某事的类的最佳名称,但这展示了如何在 __init__ 中将其设置为成员并记住它们以备后用).


根据评论进行编辑。

一种轻量级的方法是命名元组来保存您想要引用的数据。

from collections import namedtuple
Data = namedtuple('Data','foo bar')
data = Data('one', 'two')

然后您可以像这样访问项目,foobar:

>>> data.foo
'one'

所以,就像上课一样,你在制作之前声明“类型”并可以引用它。


或者做一个字典

data = {}

并根据需要添加东西

data['Table'] = 'MyTable'

并根据需要使用它们。

print data['Table']

请注意,如果您要的元素不存在,这将引发异常。

关于linux - 即使既没有定义字符串也没有定义列表,如何将字符串引用到列表数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54021528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com