除了import
语句之外,Python的"from"关键字还有其他用途吗?
我有一个数组:x = [ [1, 2], 1, 1, [2, 1, [1, 2]] ]
我想在其中计算每次出现的数字1
,并将该数字存储在变量中one_counter
.x.count(1)
只返回2次1
,这是不够的.
我下面的代码提供我的目的并存储5
在one_counter
,但它看起来凌乱,感觉unpythonic给我.
有什么建议我如何改进其pythonicity并将其扩展到更多维列表?
谢谢!
x = [[1, 2], 1, 1, [2, 1, [1, 2]]]
one_counter = 0
for i in x:
if type(i) == list:
for j in i:
if type(j) == list:
for k in j:
if k == 1:
one_counter += 1
else:
if j == 1:
one_counter += 1
else:
if i …
Run Code Online (Sandbox Code Playgroud) 我昨天遇到了一个有趣的数学问题,并解决了,但是我写的代码,我不得不做一个键盘中断,否则它会永远运行,哈哈.因此我将其更改为具有结束条件,但现在它只打印1个解决方案并停止.
问题是这样的:"你有数字123456789,按顺序.在每个数字之间,你必须插入任何内容,加号或乘法符号,以便结果表达式等于2002.编写一个打印所有的程序解决方案.(有两个.)"
import random
def try1(param):
global solved
opers = ['+', '*', '']
hotpotato = ('%s'.join(param) % (random.choice(opers),
random.choice(opers),
random.choice(opers),
random.choice(opers),
random.choice(opers),
random.choice(opers),
random.choice(opers),
random.choice(opers),
)
)
if eval(hotpotato) == 2002:
solved += 1
print "Solution:", hotpotato, "= 2002 :-)"
else:
pass
solved = 0
while solved == 0:
try1('123456789')
Run Code Online (Sandbox Code Playgroud)
此代码打印它遇到的第一个解决方案并停止.任何人都可以告诉我如何让它在停止前打印两种解决方案吗?
抱歉这个糟糕的头衔.我真的不知道如何向搜索引擎描述这一点,以了解它是如何工作的.
class MyClass(object):
def __init__(self, contents=None):
self.contents = contents
Run Code Online (Sandbox Code Playgroud)
具体来说,contents=None
参数.
我现在已经学习了大约2个月的Python,这部分让我大吃一惊.任何帮助或重定向到类似的,先前提出的问题将非常感激.
我正在玩,codingbat.com,
我发现这个问题很容易解决,所以我开始尝试打新手代码高尔夫.
给定非空字符串和int n,返回一个新字符串,其中索引n处的char已被删除.n的值将是原始字符串中char的有效索引(即n将在0..len(str)-1的范围内).
missing_char( '小猫',1)→ 'ktten'
missing_char( '小猫',0)→ '伊顿'
missing_char( '小猫',4)→ 'kittn'
Das代码:
def missing_char(str, n):
return ''.join(' '.join(str).split().remove(str[n]))
Run Code Online (Sandbox Code Playgroud)
奇怪的是,Python不会解释这一点.
为什么不?
python ×5
python-2.x ×2
arrays ×1
behavior ×1
class ×1
for-loop ×1
import ×1
join ×1
keyword ×1
parameters ×1
puzzle ×1
python-3.x ×1
string ×1