在Python中,我如何解析数字字符串,如"545.2222"相应的浮点值,545.2222?或者将字符串解析为"31"整数,31?
我只是想知道如何将一个浮点数 解析str为a float,并且(单独)将一个int 解析str为一个int.
我在 python 中有嵌套列表的数据,其中一部分看起来像:
data = [['214', '205', '0', '14', '710', '1813494849', '0'], ['214', '204', '0', '30', '710', '1813494856', '0'], ['214', '204', '0', '34', '710', '1813494863', '0'], ['213', '204', '0', '35', '710', '1813494870', '0'], ['213', '203', '0', '35', '710', '1813494877', '0']]
Run Code Online (Sandbox Code Playgroud)
使用几种方法转换数据时:
1.
new_data_list = [[int(x) for x in list] for list in data]
Run Code Online (Sandbox Code Playgroud)
list=[]
for i in range(0,len(data)):
list.append([])
for j in range(0,len(data[i])):
b=int(data[i][j])
list[i].append(b)
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
ValueError:int() 的无效文字以 10 为基数:''
我的数据列表中没有非数字数据。但是标题可能有一些东西,比如一个空标题被视为非数字值,因为我已经从 csv 创建了一个数据列表。
我想知道一种有效的方法,可以将列表的每个元素转换为 int,同时保留数据多列表。
所以我想要做的事情看起来相对简单,但对于我的生活,我却无法得到它.我有一个.txt文件
4 2
6 5 1
9 4 5
Run Code Online (Sandbox Code Playgroud)
我希望它的信息可以像我这样使用(即我不需要编写新的.txt文件,除非有必要.)...
3 1
5 4 0
8 3 4
Run Code Online (Sandbox Code Playgroud)
或者,1从每个数字中减去,但格式保持不变.永远不会有比1原版更大的数字,因此不可能出现负面影响.这整个头痛是由于转换索引开始0而不是1.可能使事情复杂化的是原始文件打印出来的
['4 2 /n','6 5 1 /n', '9 4 5 /n']
Run Code Online (Sandbox Code Playgroud)
我做了什么
好吧,它是我在StackOverflow 上找到的不同东西的混搭,但我想我会以最麻烦的方式来解决它.当我实现它时,这个没有意义..虽然它可能与空格问题在同一轨道上..
origianl = open(file, 'r')
for line in original.readlines():
newline = line.replace(" \n","")
finalWithStrings.append(newline)
finalWithIntegers = [map(int,x) for x in finalWithStrings]
finalWithIntegers[:] = [x-1 for x in finalWithIntegers]
Run Code Online (Sandbox Code Playgroud)
我的思维过程是,我需要删除"/ n"并将这些字符串转换为整数,这样我就可以减去1它们.并以某种方式保持格式.格式化是很重要的,因为每行包含有关另一个文件的类似索引行的信息.我不想在最终结果(或打印语句)中看到"/ n"但我仍然希望新行的效果开始.然而,上面的代码不会有两个原因(我知道).
int(n[:]) 抛出一个错误,因为它不喜欢空格,当我在那里放一个值(比如说0)时,代码打印每一行的第一个数字并减去一个...并将它全部放在一行上. …
我有一个文本文件,其中每行都有数字(只有数字)。我的color.txt样子:
3
3
5
1
5
1
5
Run Code Online (Sandbox Code Playgroud)
当我读到这个列表时使用
f=open('D:\\Emmanu\\project-data\\color.txt',"r")
for line in f:
g_colour_list.append(line.strip('\n'))
print g_colour_list
Run Code Online (Sandbox Code Playgroud)
输出就像
['3', '3', '5', '1', '5', '1', '5']
Run Code Online (Sandbox Code Playgroud)
但我希望它是:
[3,3,5,1,5,1,5]
Run Code Online (Sandbox Code Playgroud)
我怎样才能在单行中做到这一点
g_colour_list.append(line.strip('\n'))?
Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。
假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y:
y = x + 1
# Or it could be in a function:
def calc_y(an_x):
return an_x + 1
Run Code Online (Sandbox Code Playgroud)
现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:
xs = [1, 3, 5]
for x in xs:
y = x + 1
Run Code Online (Sandbox Code Playgroud)
while或者,如果有其他逻辑来计算值序列,我可以使用循环x:
def next_collatz(value):
if value % 2 == 0:
return value // 2
else:
return 3 * value + 1
def collatz_from_19():
x = 19
while x != 1:
x …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写在Python中导入和导出复数列表的代码.到目前为止,我正在尝试使用csv模块.我使用以下方法将数据导出到文件:
spamWriter = csv.writer(open('data.csv', 'wb')
spamWriter.writerow(complex_data)
Run Code Online (Sandbox Code Playgroud)
复杂数据是复杂(re,im)函数生成的列表编号.例如:
print complex_data
[(37470-880j),(35093-791j),(33920-981j),(28579-789j),(48002-574j),(46607-2317j),(42353-1557j),(45166-2520j),(45594-232j),(41149+561j)]
Run Code Online (Sandbox Code Playgroud)
然后稍后导入它,我尝试以下方法:
mycsv = csv.reader(open('data.csv', 'rb'))
out = list(mycsv)
print out
[['(37470-880j)','(35093-791j)','(33920-981j)','(28579-789j)','(48002-574j)','(46607-2317j)','(42353-1557j)','(45166-2520j)','(45594-232j)','(41149+561j)']]
Run Code Online (Sandbox Code Playgroud)
(请注意,这是一个列表列表,我恰好只使用了一行示例.)
我现在需要把它变成复数而不是字符串.我认为应该有一种方法可以用这个问题进行映射,但我无法弄清楚如何使它工作.任何帮助,将不胜感激!
或者,如果有任何更简单的方法来导入/导出我不知道的复数值数据,我会很乐意完全尝试其他方法.
我有一个函数,它将一个值作为字符串返回给我.这不是值的ascii表示,这是实际值,但函数将其作为字符串类型返回,而我需要将其视为int.我不允许更改我只需从中提取数据的功能.
在CI中只会将它转换为int指针并将其解析为:
myInt = *((int*)some_str_ptr)
Run Code Online (Sandbox Code Playgroud)
我怎么能在python中这样做?
同样,我不想修改或转换内存中的数据,我只想对待它并将其显示为int.
更新:我发现ord()在1个char上做了我想要的,但是有一个内置的方法来完成整个字符串吗?
可能重复:如何在Python中将字符串转换为整数?
大家好,
我试图将这个字符串整数从嵌套列表转换为整数.这是我的清单:
listy = [['+', '1', '0'], ['-', '2', '0']]
Run Code Online (Sandbox Code Playgroud)
我试图转换为这个:
[['+', 1, 2], ['-', 2, 0]]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的,但我的第二行代码取自问题中的一个答案如何在Python中将字符串转换为整数?
listy = [['+', '1', '0'], ['-', '2', '0']]
T2 = [list(map(int, x)) for x in listy]
print(T2)
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:
ValueError: invalid literal for int() with base 10: '+'
Run Code Online (Sandbox Code Playgroud)
有没有办法在Python 3中解决这个问题?
我是Python的新手。我写了这个,当我在输入中输入字母时出现了这个错误:
TypeError: unorderable types: str() >= int()
Run Code Online (Sandbox Code Playgroud)
这是我编写的代码:
user_input = input('How old are you?: ')
if user_input >= 18:
print('You are an adult')
elif user_input < 18:
print('You are quite young')
elif user_input == str():
print ('That is not a number')
Run Code Online (Sandbox Code Playgroud) 我从一个文件中读取一行,每行包含一定数量的数字.我的问题是输入来自一个字符串行,然后我需要将其作为整数处理,按照通常的建议进行转换.虽然我检查了上一篇关于这个问题的帖子,可能是因为我使用结构和拆分可能是转换不能正常工作的原因.
这里出现这个错误:
TypeError: not all arguments converted during string formatting
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做代码的快照:
class Data:
value1 = 0
max = 10
class Process:
value = None
def __init__(self):
self.input = Data()
def __del__(self):
self.input
def getValue(self,line):
counter=0
for word in line.split():
if counter == 0:
self.input.value1=(int)word
for number in self.input.max:
if (number % self.input.value1 ==0):
print(number)
def readingFile(self):
file = open(filename, "r")
for line in file:
self.getValue(line)
Run Code Online (Sandbox Code Playgroud)
有什么可能遗漏的建议吗?我在Linux Python 3上运行,使用命令行进行编译.
不确定我的标题是否足够清晰.我有以下列表:
[u'394', u'132.2k', u'6.8k', u'1', u'100', u'457', u'3.5k', u'3.5k', u'184', u'507', u'57']
Run Code Online (Sandbox Code Playgroud)
我想循环遍历此列表,删除所有K,并在删除它们时将元素乘以1000.所以我想我需要在将它们相乘之前将每个字符串转换为整数.
我尝试了各种配方,但我有点失落.这是我到目前为止所做的事情:
for item in stringlist:
if 'k' in item:
finallist.append(item)
Run Code Online (Sandbox Code Playgroud)
但这根本不起作用,因为它返回了一个k没有任何数字的列表.我也尝试使用replace但无法使其工作.
python ×12
integer ×5
string ×4
python-3.x ×2
c ×1
formatting ×1
input ×1
int ×1
iteration ×1
list ×1
nested-lists ×1
parsing ×1
python-2.7 ×1
split ×1