我创建了两个名单l1和l2,但每一个具有不同的创建方法:
import sys
l1 = [None] * 10
l2 = [None for _ in range(10)]
print('Size of l1 =', sys.getsizeof(l1))
print('Size of l2 =', sys.getsizeof(l2))
Run Code Online (Sandbox Code Playgroud)
但输出让我感到惊讶:
Size of l1 = 144
Size of l2 = 192
Run Code Online (Sandbox Code Playgroud)
使用列表推导创建的列表在内存中的大小更大,但是这两个列表在Python中是相同的.
这是为什么?这是CPython内部的一些东西,还是其他一些解释?
要将float常量初始化为+ inf,-inf,nan我总是使用带有字符串的float():
print(float('inf'), float('+inf'), float('-inf'), float('nan'))
Run Code Online (Sandbox Code Playgroud)
这打印:
[inf, inf, -inf, nan]
Run Code Online (Sandbox Code Playgroud)
1.)Python中是否存在初始化这些常量的替代方法(不使用字符串调用float)?
2.)我可以用一些数学运算产生这些常数(+/- inf,nan)吗?
例如,对于变量设置f到+inf,通过编写类似f = 1.0 / 0.0(显然,这是零错误分公司).
我目前正在学习Linux下的各种分析和性能实用程序,特别是valgrind/cachegrind.
我有以下玩具程序:
#include <iostream>
#include <vector>
int
main() {
const unsigned int COUNT = 1000000;
std::vector<double> v;
for(int i=0;i<COUNT;i++) {
v.push_back(i);
}
double counter = 0;
for(int i=0;i<COUNT;i+=8) {
counter += v[i+0];
counter += v[i+1];
counter += v[i+2];
counter += v[i+3];
counter += v[i+4];
counter += v[i+5];
counter += v[i+6];
counter += v[i+7];
}
std::cout << counter << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
用这个程序编译g++ -O2 -g main.cpp并运行valgrind --tool=cachegrind ./a.out,然后cg_annotate cachegrind.out.31694 --auto=yes产生以下结果:
--------------------------------------------------------------------------------
-- Auto-annotated source: /home/andrej/Data/projects/pokusy/dod.cpp
-------------------------------------------------------------------------------- …Run Code Online (Sandbox Code Playgroud) 我想处理一个字符串数据集,并将“-”替换为“。”。我有这个数据集:
AUDI XXX-R 2-0TS
AUDI XXX-R 2-0T
AUDI X-R 2-0
Run Code Online (Sandbox Code Playgroud)
我希望将“-”替换为“。” 因此,所有具有数字-number **的事件都应替换为数字.number **
我尝试添加以下正则表达式模式,但它也替换了字母的“-”
[^a-z-A-Z]?(\d)-(\d)?[a-zA-Z]?[a-z-A-Z]
Run Code Online (Sandbox Code Playgroud)
我需要这样的模式:无论字符串是两位数之间的“-”,都应替换为“。”。
If I have a list with some nested dictionaries each containing the same keyset and value type set.
list = [{'a': 1, 'b': 2.0, 'c': 3.0},
{'a': 4, 'b': 5.0, 'c': 6.0},
{'a': 7, 'b': 8.0, 'c': 9.0}]
Run Code Online (Sandbox Code Playgroud)
返回 'b' 字典键中 5.0 第一次出现的列表索引的最 Pythonic 方法是什么,如果没有找到,则返回 None ?
我知道我可以手动迭代和搜索:
#with the list above...
result = None
for dict in list:
if dict['b'] == 5.0:
result = list.index(dict)
break
print result
#(prints 1)
#as another example, same code but searching for a …Run Code Online (Sandbox Code Playgroud) 我有以下数据框
| 推销员 | 北访问 | 南面访问 | 东方访问 | 西访问 |
|---|---|---|---|---|
| A | 1 | 0 | 0 | 1 |
| 乙 | 0 | 1 | 1 | 1 |
| C | 1 | 0 | 1 | 1 |
我想将上面的格式转换成下面的格式
| 推销员 | 方向 | 使用权 |
|---|---|---|
| A | 北 | 1 |
| A | 南 | 0 |
| A | 东方 | 0 |
| A | 西方 | 1 |
| 乙 | 北 | 0 |
| 乙 | 南 | 1 |
| 乙 | 东方 | 1 |
| 乙 | 西方 | 1 |
我尝试探索 split 和 transpose 函数,但没有得到预期的结果。有人可以帮忙编写代码以在 python 中进行上述更改吗?提前致谢。
我是一名 Python 初学者,正在尝试制作 21 点游戏,并且不断收到有关此代码的多个关键错误
def rank(rank):
rank={
'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'Jack':10,
'King':10,'Queen':10,'Ace':1}
return random.choice(rank)
Run Code Online (Sandbox Code Playgroud)
当我尝试像这样调用函数时发生错误
def draw_card(card):
card_rank=Card.rank(rank)
card_suit=Card.suit(suit)
card={card_suit:card_rank}
return card
Run Code Online (Sandbox Code Playgroud)
尝试使用“Card”类中的“rank”函数将属性应用于新的“card”变量
我正在编写代码,使A 1<A<2*50找到一个值b,使得A+B==A^B
我试过了,但是对于巨大的价值,解决方案用尽了内存
def solve(A):
if A==1:
return 2
for i in xrange(1,A+1):
if A+i==A^i:
return i
Run Code Online (Sandbox Code Playgroud)
期望通过大价值
我根本不知道该怎么做作业,这让我感到压力:
实现函数avg(),该函数将包含数字列表的列表作为输入。每个数字列表代表特定学生在课程中获得的成绩。例如,这是一个四个学生的班级的输入列表:
[[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
平均功能应每行打印每个学生的平均成绩。您可以假设每个成绩列表都是非空的,但您不能假设每个学生的成绩都相同。
avg ([[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]])
90.0
60.0
87.0
11.0
Run Code Online (Sandbox Code Playgroud)
我完全迷路了,我知道我甚至还没有找到答案。这是我到目前为止所做的
def avg(grades):
return avg(grades)
grades =[INSERT LIST OF RANDOM NUMBER]
avg(grades)
Run Code Online (Sandbox Code Playgroud)
是的,我知道这还不算近,而且我的大脑只有豌豆大小。我不知道。谁能帮助我并以白痴可以理解的方式进行解释?这只是第一个问题。它应该是最简单的,但我做不到。
功课要在几个小时内完成,所以我将不胜感激。
我发现了一些类似的问题,但没有一个能解决我的问题。按照这个例子:
d={'a': 6, 'b': 3, 'c': 8, 'd': 1}
Run Code Online (Sandbox Code Playgroud)
现在我想打印具有最大数字(在本例中'c')和最小(在本例中'd')的键。意识到我想要打印的是关键,而不是它的价值。
python ×9
dictionary ×3
list ×2
python-3.x ×2
c++ ×1
cachegrind ×1
cpu-cache ×1
dataframe ×1
key ×1
keyerror ×1
pandas ×1
performance ×1
profiling ×1
regex ×1