2023.10.20 Python将列表中所有字符串转换为整数

本文介绍了在Python中将字符串列表转换为整数列表的五种方法,包括使用`eval()`、列表推导式、`map()`函数、`round()`函数以及利用字符串特性。还提及了如何使用递归解决兔子数量问题。
摘要由CSDN通过智能技术生成

在Python中可以很方便的进行类型转换。在开发中将整个字符串列表转换成整数列表也十分常见,下面介绍处理该问题的几种方式。

Python eval()函数用来执行一个字符串表达式,并返回表达式的值。如果表达式是用int表示,则会将参数转换为整数。

>>> lis = ['1','-4','3','-6','7']
>>> res = [eval(i) for i in lis]
>>> res
[1, -4, 3, -6, 7]
>>> lis
['1', '-4', '3', '-6', '7']

使用列表推导式实现的,这是开发人员一直在寻找的一种速记。它节省了编写解决方案的时间和复杂性。 

>>> test_list = ['1','4','3','6','7']
>>> test_list = [ int(i) for i in test_list ]
>>> test_list
[1, 4, 3, 6, 7]

 

这是执行此特定任务的最优雅、pythonic 和推荐的方法。此功能专为此类任务而设计,应该用于执行它们。

>>> test_list = ['1','4','3','6','7']
>>> test_list = list(map(int,test_list))
>>> test_list
[1, 4, 3, 6, 7]

 

在这里,我们首先将每个字符串先转换为浮点数,然后使用 round() 函数将其转换为整数,否则会报错。

>>> lis = ['1.1','4','3.5','6.7','7.2']
>>> res = [ round(float(i))  for i in lis ]
>>> res
[1, 4, 4, 7, 7]

 round用于保留小数位数

q = float(input())
a = round(q,2)
print(a)

q是输入的小数,2是保留的小数位数

 

# Python有内置函数isalpha、isdigit、isspace可以分别判断字符串是否只包含字母
、数字、空格

 

 

多行输入多个字符串,每行一个单词,最后一个输入为0时结束。

把这些单词拼接成以空格间隔开的句子使用join函数

list1=[]
while(True):
    n=input('')
    if(n=='0'):
        break
    else:
        list1.append(n)
print(' '.join(list1))

 

兔子的数量以这样的方式增长:每个月的兔子数量等于它前一个月的兔子数量加它前两个月的兔子数量,即f(n)=f(n-1)+f(n-2)。假设第1个月的兔子有2只,第2个月的兔子有3只,你能使用递归的方法求得第n个月的兔子有多少只吗?

'''
1_num = 2
2_num = 3
3_num = 2 + 3 = 5
4_num = 3 + 5 = 8
'''


def f(n):
    # 第一个月有2只兔子
    if n == 1:
        return 2
    # 第二个月有3只兔子
    if n == 2:
        return 3
    # f(n-1)前一个月的num,f(n-2)前两个月的num
    # 一直回溯到f(n-1) == 2 , f(n-2) == 1
    return f(n - 1) + f(n - 2)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白白的wj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值