相关疑难解决方法(0)

Python:将项目追加到列表N次

这似乎是Python有一个捷径.我想将一个项目附加到列表N次,实际上这样做:

l = []
x = 0
for i in range(100):
    l.append(x)
Run Code Online (Sandbox Code Playgroud)

在我看来应该有一个"优化"的方法,如:

l.append_multiple(x, 100)
Run Code Online (Sandbox Code Playgroud)

在那儿?

python list

70
推荐指数
5
解决办法
9万
查看次数

TypeError:'str'对象不可调用(Python)

码:

import urllib2 as u
import os as o
inn = 'dword.txt'
w = open(inn)
z = w.readline()
b = w.readline()
c = w.readline()
x = w.readline()
m = w.readline()
def Dict(Let, Mod):
    global str
    inn = 'dword.txt'
    den = 'definitions.txt'

    print 'reading definitions...'

    dell =open(den, 'w')

    print 'getting source code...'
    f = u.urlopen('http://dictionary.reference.com/browse/' + Let)
    a = f.read(800)

    print 'writing source code to file...'
    f = open("dic1.txt", "w")
    f.write(a)
    f.close()

    j = open('defs.txt', 'w')

    print 'finding definition is source …
Run Code Online (Sandbox Code Playgroud)

python

59
推荐指数
10
解决办法
48万
查看次数

Python:AttributeError:'NoneType'对象没有属性'append'

我的程序看起来像

# global
item_to_bucket_list_map = {}

def fill_item_bucket_map(items, buckets):
    global item_to_bucket_list_map

    for i in range(1, items + 1):
        j = 1
        while i * j <= buckets:
            if j == 1:
                item_to_bucket_list_map[i] = [j]
            else:
                item_to_bucket_list_map[i] = (item_to_bucket_list_map.get(i)).append(j)
            j += 1
        print "Item=%s, bucket=%s" % (i, item_to_bucket_list_map.get(i))


if __name__ == "__main__":
    buckets = 100
    items = 100
    fill_item_bucket_map(items, buckets)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会抛出我

AttributeError: 'NoneType' object has no attribute 'append'

不知道为什么会这样?当我在每个开头创建一个列表时j

python list

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

为什么列表操作不返回结果列表?

我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.

请注意,我不是在抱怨(我敢肯定有一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.

python

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

如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。

假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y

y = x + 1

# Or it could be in a function:
def calc_y(an_x):
    return an_x + 1
Run Code Online (Sandbox Code Playgroud)

现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:

xs = [1, 3, 5]
for x in xs:
    y = x + 1
Run Code Online (Sandbox Code Playgroud)

while或者,如果有其他逻辑来计算值序列,我可以使用循环x

def next_collatz(value):
    if value % 2 == 0:
        return value // 2
    else:
        return 3 * value + 1

def collatz_from_19():
    x = 19
    while x != 1:
        x …
Run Code Online (Sandbox Code Playgroud)

python iteration list-comprehension

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

'NoneType' 对象在循环中附加到列表时没有属性 'append'

我不断收到此错误消息:

Traceback (most recent call last):
  File "C:/Users/tabba/PycharmProjects/erle_loops/Hobbies.py", line 9, in <module>
    hobbies = hobbies.append(hobby)
AttributeError: 'NoneType' object has no attribute 'append'
Run Code Online (Sandbox Code Playgroud)

该程序的目的是将爱好添加到列表中

我的代码:

hobby = ''
hobbies = []
no_room_left = False
room = 3
count = 0
while not no_room_left:
    if count<room:
        hobby = str(input("Enter hobby"))
        hobbies = hobbies.append(hobby)
        count+=1
print(hobbies)
Run Code Online (Sandbox Code Playgroud)

python list append python-3.x

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