相关疑难解决方法(0)

获取map()以返回Python 3.x中的列表

我正在尝试将列表映射到十六进制,然后在其他地方使用列表.在python 2.6中,这很简单:

答: Python 2.6:

>>> map(chr, [66, 53, 0, 94])
['B', '5', '\x00', '^']
Run Code Online (Sandbox Code Playgroud)

但是,在Python 3.1中,上面返回了一个map对象.

B: Python 3.1:

>>> map(chr, [66, 53, 0, 94])
<map object at 0x00AF5570>
Run Code Online (Sandbox Code Playgroud)

如何在Python 3.x上检索映射列表(如上面的A中所示)?

或者,有更好的方法吗?我的初始列表对象有大约45个项目,id喜欢将它们转换为十六进制.

python list python-3.x map-function

480
推荐指数
5
解决办法
37万
查看次数

如何将字符串拆分为字符数组?

我试图环顾网络寻找将字符串拆分成字符数组的答案,但我似乎无法找到一个简单的方法

str.split(//)似乎没有像Ruby那样工作.有没有循环的简单方法吗?

python split

423
推荐指数
12
解决办法
76万
查看次数

如何替换字符串的多个子串?

我想使用.replace函数来替换多个字符串.

我现在有

string.replace("condition1", "")
Run Code Online (Sandbox Code Playgroud)

但是想要有类似的东西

string.replace("condition1", "").replace("condition2", "text")
Run Code Online (Sandbox Code Playgroud)

虽然那感觉不是很好的语法

这样做的正确方法是什么?有点像grep/regex你可以做什么\1,\2并将字段替换为某些搜索字符串

python text replace

247
推荐指数
13
解决办法
33万
查看次数

返回列表的产品

是否有更简洁,高效或简单的pythonic方式来执行以下操作?

def product(list):
    p = 1
    for i in list:
        p *= i
    return p
Run Code Online (Sandbox Code Playgroud)

编辑:

我实际上发现这比使用operator.mul要快一些:

from operator import mul
# from functools import reduce # python3 compatibility

def with_lambda(list):
    reduce(lambda x, y: x * y, list)

def without_lambda(list):
    reduce(mul, list)

def forloop(list):
    r = 1
    for x in list:
        r *= x
    return r

import timeit

a = range(50)
b = range(1,50)#no zero
t = timeit.Timer("with_lambda(a)", "from __main__ import with_lambda,a")
print("with lambda:", t.timeit())
t = timeit.Timer("without_lambda(a)", "from __main__ …
Run Code Online (Sandbox Code Playgroud)

python

150
推荐指数
9
解决办法
16万
查看次数

Python3中的过滤器

我正在学习Python中的过滤器概念.我正在运行这样一个简单的代码.

>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
Run Code Online (Sandbox Code Playgroud)

但是我没有得到一个列表,而是得到了这样的消息.

<filter object at 0x00FDC550>
Run Code Online (Sandbox Code Playgroud)

这是什么意思?这是否意味着我的过滤对象即出来的列表存储在该内存位置?我如何获得我需要的清单?

python list filter python-3.x

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

reduce()有什么问题?

网上似乎有很多关于python 3.0中reduce()函数更改以及如何删除它的讨论.我有点难以理解为什么会这样; 我发现在各种情况下使用它是相当合理的.如果蔑视只是主观的,我无法想象会有这么多人关心它.

我错过了什么?reduce()有什么问题?

python python-3.x

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

TypeError:'zip'对象不可订阅

我有格式为token/tag的标记文件,我尝试了一个函数,它返回一个带有来自(word,tag)列表的单词的元组.

def text_from_tagged_ngram(ngram): 
    if type(ngram) == tuple:
        return ngram[0]
    return " ".join(zip(*ngram)[0]) # zip(*ngram)[0] returns a tuple with words from a (word,tag) list
Run Code Online (Sandbox Code Playgroud)

在python 2.7中它运行良好,但在python 3.4中它给我以下错误:

return " ".join(list[zip(*ngram)[0]])
TypeError: 'zip' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

python python-3.x

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

为什么foo = filter(...)返回<filter object>,而不是列表?

在Python IDLE 3.5.0 shell中工作.根据我对内置"过滤器"函数的理解,它会返回列表,元组或字符串,具体取决于您传入的内容.那么,为什么下面的第一个分配工作,而不是第二个('>>>只是交互式Python提示)

>>> def greetings():
    return "hello"

>>> hesaid = greetings()
>>> print(hesaid)
hello
>>> 
>>> shesaid = filter(greetings(), ["hello", "goodbye"])
>>> print(shesaid)
<filter object at 0x02B8E410>
Run Code Online (Sandbox Code Playgroud)

python variables filter variable-assignment

55
推荐指数
3
解决办法
7万
查看次数

如果条件为真,则创建具有相邻列表元素的元组列表

我正在尝试创建一个元组列表,其中元组内容是列表中的数字9和数字.

输入清单:

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

期望的输出:

sets = [(8, 9), (4, 9), (7, 9)]
Run Code Online (Sandbox Code Playgroud)

码:

sets = [list(zip(myList[i:i], myList[-1:])) for i in myList if i==9]
Run Code Online (Sandbox Code Playgroud)

目前的结果:

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

python tuples list-comprehension list python-3.x

29
推荐指数
5
解决办法
3446
查看次数

NameError:未定义全局名称'reduce'

我是Python的新手.你能告诉我以下代码有什么问题吗?当我运行它时,我收到一条错误消息"NameError:全局名称'reduce'未定义".我问Goolge但是没用.:(

def main():
    def add(x,y): return x+y
    reduce(add, range(1, 11))

if __name__=='__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

python reduce

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