用户定义的函数来计算出现的随机生成的列表包含一个以n开头的整数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户定义的函数来计算出现的随机生成的列表包含一个以n开头的整数相关的知识,希望对你有一定的参考价值。
一般来说是python和编程的新手。我编写了一个函数来生成一个没有重复项的随机列表和许多其他可调用函数来计算该列表中的内容(例如,中位数,平均值,平均值,赔率,%n等)
问题:
- 编写一个函数来计算以1和1开头的整数数
- 编写一个函数来计算以1结尾的整数数
我的代码是
import random
def fill(nx, x, y):
lx = []
j = 0
while (j < nx):
randNum = random.randint(x, y)
if randNum not in lx:
lx.append(randNum)
j = j + 1
return lx
def digit1x(lx):
#some kind of count
cnt_1x = 0
#loop to iterate lx?
for i in lx: # not sure what to really do from here
if i ==
return 0
def digitx1(lx):
# same problem
return 0
def sum(lx):
s=0
for i in lx:
s+=i
return s
Calling the Functions
n = 25
a = 10
b = 60
myList = fill(n, a, b)
print(myList)
Output
[32, 27, 57, 17, 14, 55, 29, 42, 23, 12, 11, 47, 60, 41, 31, 20,
21, 26, 56, 35, 30, 44, 54, 10, 50]
Sum == 844
Minimum 10
Maximum == 60
Average == 33.76
Expected
x = digit1x(myList)
print("10 the number of integers that start with the digit 1 == ", x)
output: "...==" 5
y = digitx1(myList)
print("11 the number of integers that end with the digit 1 == ", y)
output:"...==" 4
答案
def digit1x(lx):
return len([i for i in lx if str(i)[0]=='1'])
def digitx1(lx):
return len([i for i in lx if str(i)[-1]=='1'])
如果你缺乏内存和处理资源:
def digit1x(lx):
return sum(1 for i in lx if i%10==1])
def digitx1(lx):
return sum(1 for i in lx if i/(10**int(math.log(i,10)))==1)
在这种情况下,您将避免字符串转换并仅使用一些快速计算。您还使用生成器作为总和,因此不会创建额外的列表。
另一答案
这应该做的工作
def count1(lx):
return len([i for i in lx if i%10==1])
以上是关于用户定义的函数来计算出现的随机生成的列表包含一个以n开头的整数的主要内容,如果未能解决你的问题,请参考以下文章
python两个10以内的随机整数以第一个随机整数为半径第二个随机整数为高,计算并输出圆锥体的体积