我对Python很新,并且想知道如何在不使用任何十进制模块或浮点数的情况下控制任何给定数字的小数精度(例如:"%4f"%n).
示例(编辑):
输入(2/7)
0.28571428571 ....
输入(1/3)
0.33333333333333 ....
我希望它们能够达到千位小数点或任何小数点.我想用一段时间作为一个受控制的循环,但我不确定如何这样做.谢谢
编辑:我之所以不使用十进制模块,是因为我可以概念化这些类型的事物背后的算法/逻辑.只是想真正理解事物背后的逻辑.
假设我有一个从Yahoo获取数据的函数,名为Yahoo.Fetch,我在该函数上运行一个do.call,它将是:
do.call(merge.xts, lapply(list.of.tickers, Yahoo.Fetch))
Run Code Online (Sandbox Code Playgroud)
默认将不得不all=TRUE在merge.xts,所以我会怎么能够在do.call指定有all=FALSE?这只是一个例子,但我想知道如何在apply,do.call,lapply函数中更改和指定参数.
我正在使用 argparse,我想要类似的东西: test.py --file hello.csv
def parser():
parser.add_argument("--file", type=FileType('r'))
options = parser.parse_args()
return options
def csvParser(filename):
with open(filename, 'rb') as f:
csv.reader(f)
....
....
return par_file
csvParser(options.filename)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:TypeError 强制转换为 Unicode:需要字符串或缓冲区,找到文件。
我怎么能解决这个问题?
我是Python的新手,我有兴趣在列表中列出重复项.我知道如何删除列表中的重复项(set())以及如何使用collections.Counter列出列表中的重复项.但是,对于我正在研究的项目,这不是最有效的方法,因为运行时间是n(n-1)/ 2 - > O(n ^ 2),n是5k的任何地方-50k +字符串值.
所以,我的想法是,因为python列表是链接的数据结构,并且在创建时被分配给内存,所以我从列表创建的最开始就开始计算重复数据.
我的项目给了我这些值并将其附加到列表中,所以我想实现上面的算法因为我不关心有多少重复,我只想知道是否有重复.
我想不出如何编写代码,但我想到它的基本结构,但我可能完全关闭(使用随机numgen更容易使用):
for x in xrange(0,10):
list1.append(x)
for rev, y in enumerate(reversed(list1)):
while x is not list1(y):
cond()
if ???
Run Code Online (Sandbox Code Playgroud)