列表、字典、字符串的简单操作案例

24 篇文章 1 订阅
12 篇文章 1 订阅

题目1:

有列表[‘royal’,20,[2000,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

l = ['royal',20,[2000,3,18]]
name = l[0]
age = l[1]
year = l[2][0]
month = l[2][1]
day = l[2][2] 

题目2:

用列表的insert与pop方法模拟队列

队列:FIFO,先进先出
l = []
# 入队
l.append('one')
l.append('two')
l.append('three')

print(l)

# 出队
l.pop(0)
l.pop(0)
l.pop(0)

题目3:

用列表的insert与pop方法模拟堆栈

堆栈:LIFO,后进先出
l=[]
# 入栈操作
l.append('first')
l.append('second')
l.append('third')

print(l)
# 出队操作
print(l.pop())
print(l.pop())
print(l.pop())

题目4:

简单购物车,要求如下:

 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数以三元组形式加入购物列表,如果输入为空或其他非法输入则要求用户重新输入  
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}

代码:

god_list = []
flag = True
while flag:
    god_name = input('请输入商品名:')
    god_price = input('请输入价格:')
    god_num = input('请输入购买个数:')

    if god_price.isdigit() and god_num.isdigit():
        flag = False
        god_price = int(god_price)
        god_num = int(god_num)

        god = (god_name,god_price,god_num)
        god_list.append(god)
        print(shop_list)
    else:
        print("您输入有误,请重新输入")

解题思路:

1.首先我们还是先分析一下变量,先设置一个列表,shop_list作为购物列表,用来存储用户输入的商品信息。这里我们设置用户输入的商品名为god_name,单价为god_price,购买个数为god_num。

god_list = []
god_name = input('请输入商品名:')
god_price = input('请输入价格:')
god_num = input('请输入购买个数:')

2.紧接着我们需要判断价格和个数需要为纯数字的字符串,所以我们加个条件判断,如果为纯数字字符串则转换为int类型。

if god_price.isdigit() and god_num.isdigit():
    god_price = int(god_price)
    god_num = int(god_num)

3.然后放到一个元组中,再将元组放到商品列表中,最后输出出来

if god_price.isdigit() and god_num.isdigit():
    god_price = int(god_price)
    god_num = int(god_num)

    god = (god_name,god_price,god_num)
    god_list.append(god)
    print(god_list)

4.但是如果用户输入的价格和个数不是纯数字字符串就要重新输入

else:
    print('您的输入有误,请重新输入')

5.用户输入错误与否是未知的,所以需要根据条件判断是否重复执行,所以我们套一层while循环来判断,我们设置一个变量flag,默认为True,即默认进入循环,如果用户输入无误则改变flag为False结束循环,反之不改变flag。

god_list = []
flag = True

while flag:
    god_name = input('请输入商品名:')
    god_price = input('请输入价格:')
    god_num = input('请输入购买个数:')

    if god_price.isdigit() and god_num.isdigit():
        flag = False
        god_price = int(god_price)
        god_num = int(god_num)

        god = (god_name,god_price,god_num)
        god_list.append(god)
        print(god_list)
    else:
        print('您的输入有误,请重新输入')

题目5:

有如下值集合 [11,22,33,44,55,66,77,88,99],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

l = [11,22,33,44,55,66,77,88,99]
d = {}
k2 = []
for v in l:
    if v > 66:
       d['k1'] = v
    else:
        k2.append(v)
        d['k2'] = k2
print(d)

解题思路:

1.首先我们需要一个列表包含这些数字,并且要创造一个空字典,再创造一个空列表用来存放第二个key的值

l = [11,22,33,44,55,66,77,88,99]
d = {}
k2 = []

2.然后将l列表中的值用for循环迭代出来

for v in l:

3.接着判断这个v是否大于66,如果大于66保存到k1中,小于66则添加到k2列表中,然后将k2列表存放到字典k2键中

if v > 66:
       d['k1'] = v
    else:
        k2.append(v)
        d['k2'] = k2

4.最后输出字典即可

l = [11,22,33,44,55,66,77,88,99]
d = {}
k2 = []
for v in l:
    if v > 66:
       d['k1'] = v
    else:
        k2.append(v)
        d['k2'] = k2
print(d)

题目6:

统计s='hello world royal say hello world world’中每个单词的个数

s='hello world r0ya1 say hello world world'
hello_count = s.count('hello')
world_count = s.count('world')
r0ya1_count = s.count('r0ya1')
say_count = s.count('say')

print('''hello:{hello_count}\n======
world:{world_count}\n====== 
r0ya1:{r0ya1_count}\n======
say:{say_count}\n====== 
'''.format(hello_count = hello_count,world_count = world_count , r0ya1_count = r0ya1_count , say_count = say_count))

解题思路:

1.这题比较简单,首先直接用字符串函数count统计每个单词的数量,然后传给相应的变量

s='hello world r0ya1 say hello world world'
hello_count = s.count('hello')
world_count = s.count('world')
r0ya1_count = s.count('r0ya1')
say_count = s.count('say')

2.然后格式化输出一样即可

print('''hello:{hello_count}\n======
world:{world_count}\n====== 
r0ya1:{r0ya1_count}\n======
say:{say_count}\n====== 
'''.format(hello_count = hello_count,world_count = world_count , r0ya1_count = r0ya1_count , say_count = say_count))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值