相关疑难解决方法(0)

Python列表扩展和变量赋值

我试图扩展一个列表,并对结果返回值为None感到困惑.我试过的是这个:

>>> a = [1,2]  
>>> b = [3,4]  
>>> a = a.extend(b)  
>>> print a  

None
Run Code Online (Sandbox Code Playgroud)

我终于意识到问题是最后对'a'的冗余分配.这样可行:

>>> a = [1,2]  
>>> b = [3,4]  
>>> a.extend(b)  
>>> print a  

[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我不明白的是为什么第一个版本不起作用.对'a'的赋值是多余的,但为什么它会破坏操作呢?

python list variable-assignment extend

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

Python函数返回None,不清楚为什么

我对python很新,我遇到了一个无法解释的问题.我试着在这里搜索论坛的答案,但我发现的东西与我的情况不符.感觉我错过了一些非常基本的东西,但我没有看到它(显然......)

这段代码以我期望的方式运行:

import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst+[1,1]
    else:
        return "Should never get here"

print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
Run Code Online (Sandbox Code Playgroud)

返回:

>>> 
[1]
[1, 1]
[1, 1, 1]
Run Code Online (Sandbox Code Playgroud)

这就是我想要的.

我认为在函数内部的列表中使用append和extend也可以.在代码底部附近添加了一个"附加".

import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst.append([1,1])
    else:
        return "Should never get here"


print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
Run Code Online (Sandbox Code Playgroud)

但这回归:

>>> …
Run Code Online (Sandbox Code Playgroud)

python

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

列表上的“TypeError:‘NoneType’对象不可迭代”

我想知道是否有人可以帮助我解开这个谜团。当我运行我的程序时,它显示错误。

类型错误:“NoneType”对象不可迭代

我已经测试过我尝试迭代的变量是一个列表,但它仍然说它无效并显示相同的错误。

我的代码意味着打印一个对称的星号三角形:

def iterat(num):
    for x in num:
        yield x

number=int(input("Enter Positive Number: "))

stars = list(range(number))
print(type(stars))
spaces = stars.reverse()
yeildStar = iterat(stars)
yeildSpace = iterat(spaces)

for star,space in zip(yeildStar,yeildSpace):
    print(" "*(space)+"*"*((star*2)-1))
Run Code Online (Sandbox Code Playgroud)

非常感谢。抱歉变量名不好

编辑; 感谢您的帮助。

spaces = reversed(stars)
Run Code Online (Sandbox Code Playgroud)

工作完美

python

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

list.append()的意外输出

我很困惑:

class lin_reg:

     def __init__(self):
    ''' Executes the program '''

    Indep_Array, Dep_Array = self.Prob_Def()
    Total_Array = Indep_Array.append(Dep_Array)
    print Indep_Array, Dep_Array, Total_Array
    NumArray = len(Total_Array)

def Prob_Def(self):

    Analy_Type = raw_input('Type of Regression(linear-n,nonlinear-nl): ')
    Num_IndepVar = eval(raw_input('Number of Independent Variables: '))
    Indep_Array = []
    for IndepVar in range(Num_IndepVar):
        ArrayInput = eval(raw_input('Enter the array: '))
        Indep_Array.append(ArrayInput)
    Dep_Array = eval(raw_input('Enter the dependent array: '))
    return Indep_Array, Dep_Array
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到如下输出:

obs=lin_reg.lin_reg()
Type of Regression(linear-n,nonlinear-nl): nl
Number of Independent Variables: 3
Enter the array: [1,2,3]
Enter the …
Run Code Online (Sandbox Code Playgroud)

python

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

使用.sort时排序列表时出错,但在Python中使用sorted()函数时则排序错误

这是代码,它非常简单,它看起来像很多代码:

from collections import namedtuple

# make a basic Link class
Link = namedtuple('Link', ['id', 'submitter_id', 'submitted_time', 'votes',
                           'title', 'url'])

# list of Links to work with
links = [
    Link(0, 60398, 1334014208.0, 109,
         "C overtakes Java as the No. 1 programming language in the TIOBE index.",
         "http://pixelstech.net/article/index.php?id=1333969280"),
    Link(1, 60254, 1333962645.0, 891,
         "This explains why technical books are all ridiculously thick and overpriced",
         "http://prog21.dadgum.com/65.html"),
    Link(23, 62945, 1333894106.0, 351,
         "Learn Haskell Fast and Hard",
         "http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/"),
    Link(2, 6084, 1333996166.0, 81,
         "Announcing Yesod …
Run Code Online (Sandbox Code Playgroud)

python

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

python列表追加不起作用

我有类似的东西:

>>> S=list()
>>> T=[1,2,3]
>>> for t in T:
...     print(S.append(t))
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

...
None
None
None
Run Code Online (Sandbox Code Playgroud)

我希望S包含t.为什么这不适合我?

python

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

python中"lambda"函数的不安全性

我想制作一个"走路"的模型.

在此输入图像描述

所以我创建了8个函数:

g0 = lambda ct: ct.append((lambda (x,y): (x-1,y))(ct[-1]))
g1 = lambda ct: ct.append((lambda (x,y): (x-1,y+1))(ct[-1]))
g2 = lambda ct: ct.append((lambda (x,y): (x,y+1))(ct[-1]))
g3 = lambda ct: ct.append((lambda (x,y): (x+1,y+1))(ct[-1]))
g4 = lambda ct: ct.append((lambda (x,y): (x+1,y))(ct[-1]))
g5 = lambda ct: ct.append((lambda (x,y): (x+1,y-1))(ct[-1]))
g6 = lambda ct: ct.append((lambda (x,y): (x,y-1))(ct[-1]))
g7 = lambda ct: ct.append((lambda (x,y): (x-1,y-1))(ct[-1]))
Run Code Online (Sandbox Code Playgroud)

但当我尝试应用任何功能时,我得到None:

print g0([(50,50)])
None
Run Code Online (Sandbox Code Playgroud)

好吧,Iet尝试更传统的方式:

def g0(ct):
    ct.append((lambda (x,y): (x-1,y))(ct[-1]))
    return ct
Run Code Online (Sandbox Code Playgroud)

这是按预期工作的:

[(50, 50), (49, 50)]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试

def g0(ct): …
Run Code Online (Sandbox Code Playgroud)

python lambda list

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

为什么列出反向返回Null?

我有这样的示例列表:

l = [1,2,3]

print(l.reverse())
#give None instead [3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

那个怎么样?我该如何反转清单?

python

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

颠倒列表的顺序

我需要这个来反转列表中的内容,如果它的数字或单词现在在我运行它时打印出来None.我需要它来打印反转列表.有人可以帮忙吗?

def func4(x):
    print(x.reverse())
    return;
e = ['baby','egg','chicken']
func4(e)
Run Code Online (Sandbox Code Playgroud)

python reverse list

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

sort()返回None

码:

import math
import time
import random
class SortClass(object):
    def sort1(self, l):
        if len(l)==1:
            return l
        elif len(l)==2:
            if l[0]<l[1]:
                return l
            else:
                return l[::-1]
        else:
            pivot=math.floor(len(l)/2)
            a=l[pivot:]
            b=l[:pivot]
            a2=self.sort1(a)
            b2=self.sort1(b)
            if a2==None or b2==None:
                a2=[]
                b2=[]
            return (a2+b2).sort()
        return []
Sort=SortClass()
x=[20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
print(Sort.sort1(x))
Run Code Online (Sandbox Code Playgroud)

代码输出None,即使它应该在两种情况下返回一个空列表:

return []
Run Code Online (Sandbox Code Playgroud)

a2=self.mergeSort(a)
b2=self.mergeSort(b)
if a2==None or b2==None:
    a2=[]
    b2=[]
return (a2+b2).sort()
Run Code Online (Sandbox Code Playgroud)

详细信息:代码用于我为python练习制作的列表排序模块(我在python中相对较新).sort1是一个修改过的mergesort.

python sorting recursion return python-3.x

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