我意识到我对标题的措辞并不是最好的,但我希望有一个例子可以清楚这一点.
我如何转换像这样的列表
example_list = ["asdf" , "4", "asdfasdf" , "8" , "9" ,"asdf"]
Run Code Online (Sandbox Code Playgroud)
到像这样的列表
converted_list = ["asdf" , 4, "asdfasdf", 8 , 9 , "asdf"]
Run Code Online (Sandbox Code Playgroud)
那么基本上我如何创建一个列表,其中可以转换为整数的字符串转换为整数,而无法转换的字符串保留为字符串?
作为旁注,如果converted_list整数中的每个项目是否为整数,我将如何在for循环中进行测试?
这个问题的上下文是我试图在可能的情况下将pandas中的头转换为整数,因为所有整数都是现在的字符串.然后如果列有一个带有标题的字符串,我会取列的平均值.现在,我已将所有标题放入列表中.
如何创建"if"语句以确保输入变量是数字而不是字母?
radius = input ('What is the radius of the circle? ')
#need if statement here following the input above in case user
#presses a wrong key
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
有类似的问题:检查变量是否是整数,但我看不到我的问题的答案.
我的意思是,最近我和很多人打架,所以我的朋友建议我安装Python.我今天打开它,这样我就可以计算大数字并且具有良好的精度,但是...如何使用这种精度?我的意思是,如果我做了类似的pow(31,123)工作,但如果我想检查数字是否为整数,我得到:
>>> (4.00000000000001).is_integer()
False
>>> (4.000000000000001).is_integer()
False
>>> (4.0000000000000001).is_integer()
True
>>> (4.00000000000000001).is_integer()
True
Run Code Online (Sandbox Code Playgroud)
我想写一个简单的循环来找到一些丢番图方程的解,我需要从非常大的数字取平方根并检查它是否是整数,但现在我处于紧张状态.有人可以帮助我或者给我一个如何获得更好精度的建议吗?
例:
例如:$ 2x ^ 2 = 1 + y ^ 31 $,其中x,y是整数.我的想法是循环,我增加y(从1开始),加1,除以2,取平方根,然后它必须是整数以满足等式.这就是我需要它的原因.
我想检查 lambda 表达式中的字符串是否可以转换为整数。
import re,time
rdd = sc.textFile("file:///home/vdpqa/sample.gz")
new1 = rdd.map(lambda x: re.split('/|\.|\|',x))
.filter(lambda arr: (len(arr) > 9) and isinstance(arr[7],int)).map(lambda x: x[:9])
new = new1.map(lambda x: [x[0],x[1],x[3],
time.strftime('%Y%m%d', time.localtime(int(x[7])/1000000)),x[8]])
Run Code Online (Sandbox Code Playgroud)
我检查了这个问题,但没有帮助:
>>> isinstance(1448379000595770,int)
True
>>> isinstance('1448379000595770',int)
False
Run Code Online (Sandbox Code Playgroud) 编辑:对于使用逻辑运算符将其标记为重复的人,我发现链接Python 逻辑运算符和那里的答案相当模糊,在找到“或”答案之前必须深入研究它。所以虽然这里的问题是 Python 将 None、False 和 0 一起抛出,很好,但在这里我们想区分前两个和实际的整数或浮点值。除了解释一些基本行为并且没有解决“我们如何以最pythonic的方式处理这种特定情况”之外,那篇文章真的对我的问题没有帮助。//
我在使用 int(... 或 ...) 转换整数时遇到了一些意想不到的行为。我之前没有注意到,因为我通常使用类似的东西:
整数(值或 0)
这总是很好,但是当我将 or 0 更改为另一个值并输入 0 时,我得到了一些我没想到的东西。示例是 int,但浮点数也是如此。
In [88]: int(None or 1)
Out[88]: 1
In [89]: int(2 or 1)
Out[89]: 2
In [90]: int(0 or 1)
Out[90]: 1
In [91]: int(0)
Out[91]: 0
Run Code Online (Sandbox Code Playgroud)
编辑:我希望 [90] 与 [91] 做同样的事情,但显然不是。我的问题是:为什么它会执行这种行为,以及如何以 Pythonic 的方式处理此问题而不必求助于尝试异常。
这是因为它像布尔值一样求值,因此 0 返回 or 值?处理这个问题的常见做法是什么?因为这在我们的程序中是很常见的事情,使用 try except 会创建一些难看的、不太可读的代码......这里使用 python 2.7。
这是我目前获得预期行为的解决方法:
try:
value = int(value)
except (TypeError, ValueError) as e: …Run Code Online (Sandbox Code Playgroud)