相关疑难解决方法(0)

为什么Python3中没有xrange函数?

最近我开始使用Python3,它缺乏xrange的伤害.

简单的例子:

1) Python2:

from time import time as t
def count():
  st = t()
  [x for x in xrange(10000000) if x%4 == 0]
  et = t()
  print et-st
count()
Run Code Online (Sandbox Code Playgroud)

2) Python3:

from time import time as t

def xrange(x):

    return iter(range(x))

def count():
    st = t()
    [x for x in xrange(10000000) if x%4 == 0]
    et = t()
    print (et-st)
count()
Run Code Online (Sandbox Code Playgroud)

结果分别是:

1) 1.53888392448 2) 3.215819835662842

这是为什么?我的意思是,为什么xrange被删除了?这是一个很好的学习工具.对于初学者,就像我一样,就像我们所有人一样.为什么删除它?有人能指出我正确的PEP,我找不到它.

干杯.

python xrange pep python-3.x

259
推荐指数
3
解决办法
32万
查看次数

如何在Python中使用IF ALL语句

我有一个名为checker(nums)的函数,它有一个参数,稍后会收到一个列表.我想对该列表做的是检查每个其他元素是否大于或等于前一个元素.示例:我有一个列表[1, 1, 2, 2, 3],我必须检查它是否满足条件.既然如此,函数应该返回True

我的代码:

def checker(nums):
    for x in range(len(nums)):
        if x+1<len(nums):
            if nums[x] <= nums[x+1] and nums[-1] >= nums[-2]:
                return True
Run Code Online (Sandbox Code Playgroud)

这将只运行一次,如果第一个条件为真,则返回True.我已经看过一个声明,如果所有并且不确定如何使用它.

python sorting if-statement list conditional-statements

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

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

你怎么知道你的列表是否在python中升序

我在python中编写了这个程序,看看列表是否正在升序而且它不起作用,有人可以帮助我吗?

list1 = [1, 2, 3, 4]
print (list1)
length = len(list1)
run_started = False
for x in range(length - 1):
    t = list1[x + 1] - list1[x]
    if t > 0 :
        if run_started:
            run_length = x
        else:
            run_started = True
            run_length = x
    else:
        if run_started:
            print (True)
            print ("Run Length: {0}".format(run_length))
            break
if not run_started:
    print (False)
Run Code Online (Sandbox Code Playgroud)

python

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

Python-从长度不等的列表中获取替换的所有唯一组合

注意:这不是重复的问题,因为标题可能会说

如果我有一个list列表,则需要从中获取所有组合并进行替换。

import itertools

l = [[1,2,3] ,[1,2,3],  [1,2,3]]
n = []
for i in itertools.product(*l):
    if sorted(i) not in n:
        n.append(sorted(i))
for i in n:
    print(i)

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

感谢@RoadRunner和@Idlehands。

上面的代码完美,有两个问题:

  1. 对于较大的列表,itertools.product引发MemoryError。当l具有18个3个长度的子列表时,给出的合并数约为4亿。

  2. 订单很重要,因此sorted无法解决我的问题。对于某些人可能会造成混淆,因此请在下面的示例中进行说明。

    l = [[1,2,3], [1], [1,2,3]]

在这里,我有2个独特的群组:

组1:元素0、2具有相同的值[1,2,3]

第2组:元素1,其值为[1]

因此,我需要的解决方案是:

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

因此位置1 …

python combinations list

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

如何检查字符串中的字符是否按字母顺序排列

我一直在尝试这些代码,但有一些错误.我只想知道第一个字符串是否按字母顺序排列.

def alp(s1):
    s2=sorted(s1)
    if s2 is s1:
        return True
    else:
        return False
Run Code Online (Sandbox Code Playgroud)

这总是打印False,当我说打印s1或s2时,它说"NameError:name's1'未定义"

python string

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