我想递归地附加到一个列表,但我无法想出一个有效的函数。该函数接受两个参数times和data。times应该是附加数据的次数。
到目前为止,这是我的代码:
def replicate_recur(times, data):
result2 = []
if times == 0:
result2.append(data)
else:
result2.append(data)
replicate_recur(times - 1, data)
return result2
Run Code Online (Sandbox Code Playgroud) sample = {('red', 'blue', 'purple') : 'color', 'redo' : 'again', 'bred' : 'idk', 'greeting' : ('hi', 'hello')}
def search(c):
if c in sample.keys():
return sample[c]
print(search('red'))
Run Code Online (Sandbox Code Playgroud)
这返回None. 我知道我可以将它们分开并制作具有相同值的多个键,但如果可以的话,我真的很想避免这样做。我可以吗?
而且我还希望能够搜索值(也可能是元组)并获得相应的键。
我试图找到计算这个双for循环的每次迭代的公式(例如在 python 中):
for i in range(5):
for j in range(5):
count = MYSTERIOUS_FORMULA
print count
Run Code Online (Sandbox Code Playgroud)
这里 count 的最终值应该是 25。
我试过,count=(i+1)*j但它产生0,1,2,3,4,0,2,4等。
我正在fields使用元类设置类属性:
class MyMeta(type):
def __new__(mcs, name, bases, clsdict):
clsdict['fields'] = {k: v
for k, v in clsdict.items()
if <my_condition>}
return super(MyMeta, mcs).__new__(mcs, name, bases, clsdict)
class MyBaseClass(metaclass=MyMeta):
fields = {}
Run Code Online (Sandbox Code Playgroud)
以下实例化导致预期结果:
class SubClass(MyBaseClass):
param1 = 1 # meets <my_condition>
>>> SubClass.fields
{param1: 1}
Run Code Online (Sandbox Code Playgroud)
但如果我现在子类SubClass,fields是空的:
class SubSubClass(SubClass):
pass
>>> SubSubClass.fields
{}
Run Code Online (Sandbox Code Playgroud)
我如何能够更新继承层次结构中所有类的 classdict 以便fields从基类更新变量?
我想从数组中获取两个最小值x。但是当我使用时np.where:
A,B = np.where(x == x.min())[0:1]
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ValueError:需要多个值才能解压
如何解决此错误?我是否需要在数组中按升序排列数字?
所以我有一个包含 5,000,000 个整数的列表。我想将列表覆盖到 numpy 数组中。我尝试了以下代码:
numpy.array( list )
Run Code Online (Sandbox Code Playgroud)
但速度非常慢。
我对该操作进行了 100 次基准测试,并对列表进行了 100 次循环。没有太大区别。
有什么好主意如何让它更快吗?
我有以下代码,我想在Dask数据帧上进行训练/测试拆分
df = dd.read_csv(csv_filename, sep=',', encoding="latin-1",
names=cols, header=0, dtype='str')
Run Code Online (Sandbox Code Playgroud)
但是当我尝试做像
for train, test in cv.split(X, y):
df.fit(X[train], y[train])
Run Code Online (Sandbox Code Playgroud)
它因错误而失败
KeyError: '[11639 11641 11642 ..., 34997 34998 34999] not in index'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在尝试运行我几年前编写的使用mplfrom 的代码matplotlib。它曾经运行良好,但现在突然出现错误:
from matplotlib import mpl
ImportError: cannot import name mpl
Run Code Online (Sandbox Code Playgroud)
我正在使用 Python 2.7 和 matplotlib 1.5.2。
码:
import random
x = ['A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','Q','R',
'S','T','U','V','W','X',
'Y','Z']
y1 = random.sample(x, 2)
y2 = random.sample(x, 2)
y3 = random.sample(x, 2)
y4 = random.sample(x, 2)
y5 = random.sample(x, 2)
Run Code Online (Sandbox Code Playgroud)
询问
如上所示,我选择5个随机样本组合,并在变量下声明它们y'x'。
为了改善我的代码,我想这样做,但是要确保列表中的项目在所有变量输出中出现的次数都不会超过一次,在这些变量输出中,所有组合都是不同且非重复的。我最好实现此目的而不必从列表中删除项目,因为它稍后会在代码中重用。
预期输出(示例):
>>> y1
['A', 'Q']
>>> y2
['E', 'K']
>>> y3
['C', 'O']
>>> y4
['Z', 'X']
>>> y5
['P', 'L']
Run Code Online (Sandbox Code Playgroud) 我刚刚收到错误:
Traceback (most recent call last):
File "./download_documents.py", line 153, in <module>
paragraphs, used_pages = find_pages(lang, to_extract)
File "./download_documents.py", line 67, in find_pages
random.shuffle(page_titles_queue)
File "/usr/lib/python2.7/random.py", line 291, in shuffle
x[i], x[j] = x[j], x[i]
KeyError: 1
Run Code Online (Sandbox Code Playgroud)
这让我很困惑。
random.shuffle 似乎适用于零元素列表和单元素列表。page_titles_queue 是元组列表。random.shuffle(page_titles_queue),有page_titles_queue.pop(),但这不应该影响洗牌。对?那么 KeyError 的可能原因是什么?
我Python 2.7.12在 Ubuntu 16.04 上使用。
python ×9
list ×3
python-2.7 ×3
arrays ×2
numpy ×2
python-3.x ×2
random ×2
algorithm ×1
dask ×1
dataframe ×1
dictionary ×1
importerror ×1
inheritance ×1
keyerror ×1
matplotlib ×1
metaclass ×1
nested-loops ×1
performance ×1
recursion ×1
shuffle ×1