我需要获取整数和小数的最后 2 位数字。
我正在使用number%100运算符来获取整数的最后 2 位数字。但是,当我在十进制上尝试相同的操作时出现错误。
有没有什么简单的方法可以做到,而无需转换为字符串并解析?
例子:
number = 1234.56789
Run Code Online (Sandbox Code Playgroud)
我需要得到89。
56789 % 100 = 89
Run Code Online (Sandbox Code Playgroud)
1234.56789 % 100 给出错误:
ValueError: invalid literal for int() with base 10
Run Code Online (Sandbox Code Playgroud)
更多例子:
number = 0.1
Run Code Online (Sandbox Code Playgroud)
我需要得到0.1(带小数点)。
我有一个列表,我通读了:
doc= open('text.txt')
d=doc.readlines()
Run Code Online (Sandbox Code Playgroud)
但我需要转到第10000个字符并从那里读取接下来的300个字符.首先,你知道如何按字符方式阅读列表吗?谢谢!!
我有一些字典:
my_list = [
{'name': 'AAA', 'date': '2018-05-14', 'price': 20.0},
{'name': 'AAA', 'date': '2018-05-15', 'price': 22.0},
{'name': 'AAA', 'date': '2018-05-16', 'price': 30.0},
{'name': 'BBB', 'date': '2018-05-14', 'price': 15.0},
{'name': 'BBB', 'date': '2018-05-15', 'price': 32.0}
]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何遍历该列表以生成这种格式的列表?
parsed_list = [
{'name': 'AAA', 'data': [['2018-05-14', 20.0], ['2018-05-15', 22.0], ['2018-05-16', 30.0]]},
{'name': 'BBB', 'data': [['2018-05-14', 15.0], ['2018-05-15', 32.0]]}
]
Run Code Online (Sandbox Code Playgroud)
我尝试了此问题中描述的方法:Python:将字典中的列表项分组, 但是我需要不同的输出格式,因此我无法弄清楚需要更改的内容。
有没有一种方法可以将特定值插入到列表中的特定索引中。清单应完全为空
L = []
L.insert(2,177)
print(L)
Run Code Online (Sandbox Code Playgroud)
L应该给出L [,,2]的值
def generator(dct):
for i in range(3):
dct['a'] = i
yield dct
g = generator({'a': None})
next(g) # -> {'a': 0}
next(g) # -> {'a': 1}
next(g) # -> {'a': 2}
g = generator({'a': None})
list(g) # -> [{'a': 2}, {'a': 2}, {'a': 2}]
Run Code Online (Sandbox Code Playgroud)
next像我预期的那样迭代生成器.但是,list意外迭代.我认为它应该返回,[{'a': 0}, {'a': 1}, {'a': 2}]因为next迭代没有问题.
我想知道是什么让这个变化.
(我的环境:python 3.6.5,conda 4.5.4,Windows)
我想保存一个dict或数组。
我尝试了 withnp.save和 with pickle,发现前者总是花费更少的时间。
我的实际数据要大得多,但为了演示目的,我在这里只展示了一小部分:
import numpy as np
#import numpy.array as array
import time
import pickle
b = {0: [np.array([0, 0, 0, 0])], 1: [np.array([1, 0, 0, 0]), np.array([0, 1, 0, 0]), np.array([0, 0, 1, 0]), np.array([0, 0, 0, 1]), np.array([-1, 0, 0, 0]), np.array([ 0, -1, 0, 0]), np.array([ 0, 0, -1, 0]), np.array([ 0, 0, 0, -1])], 2: [np.array([2, 0, 0, 0]), np.array([1, 1, 0, 0]), np.array([1, 0, 1, 0]), np.array([1, …Run Code Online (Sandbox Code Playgroud) 我有一个元组列表,称为list_out。我想访问列表中第二列的值(我想将acsses设置为“ 313”,“ 321”和“ 365”)。list_out正在:
list_out = [('2240', '313', {'Sign': 1}),
('2240', '321', {'Sign': 1}),
('2240', '365', {'Sign': -1})]
Run Code Online (Sandbox Code Playgroud)
我用了 :
print (list_out[0])
Run Code Online (Sandbox Code Playgroud)
出:
('2240', '313', {'Sign': 1})
Run Code Online (Sandbox Code Playgroud)
然后我用:
print (list_out[0][1])
Run Code Online (Sandbox Code Playgroud)
出:
313
Run Code Online (Sandbox Code Playgroud)
上面的代码,返回列表中一行中第二列的值(仅'313')。我想访问所有行中第二列的值。请为我提出解决此问题的方法。
我的代码中有一个区域,用于检查一个列表中的项是否在其他两个列表中,并根据该区域返回结果.
显然,第一个IF子句始终为true,只返回该子句的结果.
这是一个例子:
from datetime import date
days = [date(2018, 9, 10), date(2018, 9, 11), date(2018, 9, 12)]
list_one = [date(2018, 9, 13), date(2018, 9, 14), date(2018, 9, 15)]
list_two = [date(2018, 9, 8), date(2018, 9, 9), date(2018, 9, 10)]
for day in days:
if day not in(list_one, list_two):
print('Case one')
elif day in list_one:
print('Case two')
elif day in list_two:
print('Case three')
Run Code Online (Sandbox Code Playgroud) 输入
['~', 'n1', 'n2', ..., 'nn', '~', 'k1', 'k2', ..., 'kn', '~']
Run Code Online (Sandbox Code Playgroud)
期望的输出:
[['n1', 'n2', ..., 'nn'],['k1', 'k2', ..., 'kn']]
Run Code Online (Sandbox Code Playgroud)
我见过itertools groupby但是无法让它工作.任何帮助,将不胜感激.另外......实际上并不在列表中,只是说中间有更多元素
是否有可能创建尚未定义的变量/名称* 列表,然后在稍后阶段遍历列表以定义它们?
像这样:
varList = [varA, varB, varC]
for var in varList:
var = 0
print(varList)
>>>[0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
我问的原因是因为我有一个项目,假设我可以通过循环遍历 Pandas 系列 * 以这种方式批量填充 40 多个变量/名称*。不幸的是,Python 似乎不允许在列表中使用未定义的变量。有没有人有创造性的解决方法?
编辑:既然你问了具体的问题,这里是:
我有一个看起来像这样的 Pandas 系列(请原谅瑞典人):
print(Elanv)
>>>
Förb. KVV PTP 5653,021978
Förb. KVV Skogsflis 0
Förb. KVV Återvinningsflis 337,1416119
Förb. KVV Eo1 6,1
Förb. HVC Återvinningsflis 1848
Name: Elanv, dtype: object
Run Code Online (Sandbox Code Playgroud)
我想将这个数组中的每个值存储到一组新的变量/名称*,我想要控制的名称。例如,我希望包含第一个值的新变量/名称* 被称为“förbKVVptp”,第二个被称为“förbKVVsflis”,依此类推。
“正常”选项是手动分配每个变量,如下所示:
förbKVVptp, förbKVVsflis, förbKVVåflis = Elanv.iloc[0], Elanv.iloc[1], Elanv.iloc[2] ....
Run Code Online (Sandbox Code Playgroud)
但这会创建一个看起来不太好看的长串代码,只是为了命名变量/名称*。相反,我认为我可以做这样的事情(显然使用所有变量/名称*,而不仅仅是前三个),看起来和感觉更干净:
varList = [förbKVVptp, förbKVVsflis, förbKVVåflis]
for i, var in enumerate(varList): var …Run Code Online (Sandbox Code Playgroud)