小编use*_*818的帖子

Python:在函数之间传递变量

我花了几个小时在这里和其他地方阅读,以及尝试,但我并不真正理解我确信这是一个非常基本的概念:在不同的函数之间传递值(作为变量).

例如,我将一大堆值分配给一个函数中的列表,然后希望稍后在另一个函数中使用该列表:

list = []

def defineAList():
    list = ['1','2','3']
    print "For checking purposes: in defineAList, list is",list
    return list

def useTheList(list):
    print "For checking purposes: in useTheList, list is",list

def main():
    defineAList()
    useTheList(list)

main()
Run Code Online (Sandbox Code Playgroud)

根据我对函数参数的理解,我希望这样做如下:

  1. 将'list'初始化为空列表; 打电话给主(这个,至少,我知道我说得对......)
  2. 在defineAList()中,将某些值分配给列表; 然后将新列表传递回main()
  3. 在main()中,调用useTheList(列表)
  4. 由于'list'包含在useTheList函数的参数中,我希望useTheList现在可以使用defineAList()定义的列表,而不是在调用main之前定义的空列表.

然而,这显然是错误的理解.我的输出是:

For checking purposes: in defineAList, list is ['1', '2', '3']
For checking purposes: in useTheList, list is []
Run Code Online (Sandbox Code Playgroud)

所以,既然"回归"显然没有做我认为它做的事情,或者至少它没有像我认为的那样去做......它实际上做了什么?你可以告诉我,使用这个例子,我需要做什么来从defineAList()获取列表并在useTheList()中使用它?当我看到它们发生时,我倾向于更好地理解事物,但是我所看到的很多适当的参数传递的例子也使用了我不熟悉的代码,并且在弄清楚发生了什么的过程中,我我真的没有理解这个概念.我正在使用2.7.

ETA-在过去,提出类似的问题,有人建议我使用全局变量而不仅仅是本地变量.如果它在这里也是相关的 - 为了我正在上课的目的,我们不允许使用全局变量.

谢谢!

python arguments function

36
推荐指数
2
解决办法
18万
查看次数

将类的实例分解为列表,或者:更好地对类变量求和的方法?

这是我一直在努力的项目的一部分.我很难将精神伪代码与我实际可以编写的东西合成,主要是由于个人对这些东西如何运作的误解.

我正在使用以下课程跟踪假想水果摊的库存:

class Fruit(object)
    def __init__(self,name,qty,price)
        self.color = str(color)
        self.qty = int(qty)
        self.price = float(price)

    def getName(self): return self.color
    def getQty(self): return self.qty
    def getPrice(self): return self.price
    def description(self): return self.color,self.qty,self.price
Run Code Online (Sandbox Code Playgroud)

此类中的对象最终将作为字典键的值导入.每个键可以存在多个值,存储在列表中,这样当打印字典时,它会返回类似的内容(带有换行符以便于阅读:)

Lemon: [(Yellow, 5, 2.99)]
Apple: [(Red, 10, 0.99), (Green, 9, 0.69)]
Cherry: [(White, 2, 5.99),(Red, 5, 5.99)]
Run Code Online (Sandbox Code Playgroud)

我现在正试着在我想象中的水果摊上得到所有水果的总和值.我原来的想法只是将每个值视为一个列表,遍历列表直到我点击一个整数,将整数乘以它后面的索引中的浮点数,然后将该数量添加到具有运行总计的变量中; 然后继续寻找另一个整数.如果列表"Cherry"的"索引1"不是(Red,5,5.99)而不是(2),哪个会很好.

所以,有几个问题.

  1. 每次我做这样的事情,我有一个多个值的dictonary都是类对象,每个值都存储为括号(因为没有更好的东西可以调用它.)是应该发生的事情,或者我是否需要重新评估我正在做的事情,因为我导致这种情况发生?

  2. 如果我不需要在这里重新评估我的选择,是否有办法打破"括号"(因为没有更好的事情可以立刻将它们想到),能够将整个事物视为一个清单?

  3. 有没有更好的方法来做我想做的事情而不涉及迭代列表?

提前致谢.我已经和这个问题的各个部分打了一个星期了.

python class

3
推荐指数
1
解决办法
408
查看次数

将整数添加到整数列表中的每个值

感觉就像一个彻头彻尾的白痴,因为我知道我知道怎么做...

我有一堆数字列表:

nums = [100,200,300,400,500]
Run Code Online (Sandbox Code Playgroud)

我想为所有这些数字添加1,并将其复制到新列表,同时保留旧列表.所以我最终会

nums = [100,200,300,400,500]
moreNums = [101,201,301,401,501]
evenMoreNums = [102,202,302,402,502]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以做到这一点,或者最简单的方法仍然是这样的

for i in range (nums):
    moreNums.append(i + 1)
Run Code Online (Sandbox Code Playgroud)

?(如果可行的话,我不知道如何知道我的头脑,但我知道如果不能解决它...)

python

1
推荐指数
1
解决办法
116
查看次数

将个别列表放在新行上

来自死脑的血腥愚蠢问题......

我有一个清单:

[1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我把它切成3个列表:

splits = [1,2,3],[4,5,6],[7,8,9]
Run Code Online (Sandbox Code Playgroud)

我想现在已经印在各行上了

print splits
Run Code Online (Sandbox Code Playgroud)

[1,2,3]
[4,5,6]
[7,8,9]
Run Code Online (Sandbox Code Playgroud)

有人可以请1)打击我的头部并且2)提醒我该怎么做?

python list

1
推荐指数
1
解决办法
69
查看次数

迭代列表并连接相同类型的项目

我通过以下方式将一堆字符串推入列表list(string):

stringy = "I've 24got a 697love-a-ly2 bunch of 000coconuts!"
listy = list(stringy)
Run Code Online (Sandbox Code Playgroud)

其中listy的样子:

['I', "'", 'v', 'e', ' ', '2', '4', 'g', 'o', 't', ' ', 'a', ' ', '6', '9'...
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种更简洁的方法来遍历列表,并且在不丢弃任何单个字符条目的情况下,将所有整数连接在一起以产生:

['I', "'", 'v', 'e', ' ', '24', 'g', 'o', 't', ' ', 'a', ' ', '697','l','o'...
Run Code Online (Sandbox Code Playgroud)

整数将在字符串中的位置是不可预测的,并且数字中的位数也是不可预测的(我可以遇到1或1000000000.)

要在第一时间找到整数值,请考虑以下内容:

for i in listy:
    if i.isdigit():
        x = listy.index(i)
        z = listy[x+1]
        if z.isdigit():
Run Code Online (Sandbox Code Playgroud)

......但这只是一个低效的血腥混乱.

实际上将数字放在一起会非常容易,但我很难找到一个简洁的方法来检查每个数字.有什么建议?

python string list

1
推荐指数
2
解决办法
872
查看次数

标签 统计

python ×5

list ×2

arguments ×1

class ×1

function ×1

string ×1