西北工业大学NOJ-Python程序设计作业61-70

各位同学,创作不易,能否在文末打赏一瓶饮料呢?(^ _ ^)(文章末尾右下角处)
在这里插入图片描述

西北工业大学NOJ-Python程序设计作业题解集合:
NOJ-Python程序设计:第1季:水题(Season 1-Easy) (1-10)
NOJ-Python程序设计:第2季:小段代码(Season 2-Snippet) (11-20)
NOJ-Python程序设计:第3季:循环(Season 3-Loop) (21-30)
NOJ-Python程序设计:第4季:枚举算法(Season 4-Enumeration algorithm) (31-40)
NOJ-Python程序设计:第5季:模块化(Season 5-Modularization) (41-50)
NOJ-Python程序设计:第6季:字符串(Season 6-String) (51-60)
NOJ-Python程序设计:第7季:列表与元组(Season 7-List and Tuple) (61-70)
NOJ-Python程序设计:第8季:集合与字典(Season 8-Sets and Dictionary) (71-80)
NOJ-Python程序设计:第9季:类(Season 9-Class) (81-90)
NOJ-Python程序设计:第10季:挑战算法(Season 10-Challenges) (91-100)

第7季:列表与元组(Season 7-List and Tuple)(61-70)

img

前置知识点

建议大概了解下述函数库的基本运用之后再完成题目会更顺利。

列表排序:

常用方式:假设l是列表,元素都是整数,可以直接l.sort(),默认从小到大排序,如果l.sort(reverse=True) 则从大到小排序,也可以在内部设置key排序规则,比如:l.sort(key=lambda a:a[1])就相当于以第二个参数为关键字排序(key=lambda是固定写法)。

列表元素统计:

l.count(n)表示l中和n相同的元素个数

元组类型转换:

假如l是列表,那么要转换成元组可以l=tuple(l)

排序Ⅰ

img

l=list(map(int,input().split()))
l.sort(reverse=True)
for it in l:
    print(it,end=' ')
#-1 -67 92 99
# Code By Phoenix_ZH

反转元组

img

l1=list(map(int,input().split()))
l2=list(reversed(l1))
for i in range(0,len(l1)):
    l2[i]=l1[i]+l2[i]
ans=tuple(l2)
print(ans)
# Code By Phoenix_ZH

列表切片

img

x1,x2=map(int,input().split())
l=list(map(int,input().split()))
print(l[x1:x2])
'''
2 5
1 2 3 4 5 6 7 8 9 0
'''
# Code By Phoenix_ZH

元素相乘

img

l=list(map(int,input().split()))
ans=1
for it in l:
    ans=ans*it
print(ans)
# Code By Phoenix_ZH

列表差异

img

先枚举l1列表的元素,判断它是否在l2中存在,输出不存在的;同理再枚举l2即可。

l1=list(map(int,input().split()))
l2=list(map(int,input().split()))
for it in l1:
    if(it in l2):
        continue
    print(it,end=' ')
for it in l2:
    if(it in l1):
        continue
    print(it,end=' ')
# Code By Phoenix_ZH

循环相同

img

判断列表l1是否与l2相同,一旦相同输出True并且中断程序,否则将首部的元素添加到末尾并删除首部该元素。

import sys
l1=list(input().split())
l2=list(input().split())
for i in range(len(l2)):
    if(l1==l2):
        print("True")
        sys.exit(0)
    x=l1[0]
    del l1[0]
    l1.append(x)
print("False")
'''
A C G T A A
A A A C G T
'''
# Code By Phoenix_ZH

排序Ⅲ

img

以第二个元素为关键字排序

l=input().split(';')
result=[]
for it in l:
    it=it.strip('(')
    it=it.strip(')')
    x,y=map(int,it.split(','))
    result.append((x,y))
result.sort(key=lambda a:a[1])#以元组的第二个元素作为关键字
print(result)
#(1,105);(2,102);(3,104);(4,103);(5,101)
# Code By Phoenix_ZH

元组重复项

img

直接使用列表的count函数。

n=int(input())
l=list(map(int, input().split()))
print(l.count(n))
# Code By Phoenix_ZH

排序Ⅱ

img

以整数部分进行从小到大排序。

l=list(input().split(','))
l.sort(key=lambda a:(int(a[1:])))
for it in l:
    print(it,end=' ')
#a1,a22,a3,a8,a10,a100
# Code By Phoenix_ZH

重复字符

img

设定一个 v i s [ ] vis[] vis[]进行字符标记,遍历一遍,然后对数量大于1的进行按序输出。

vis=[0 for i in range(200)]
s=input()
for it in s:
    vis[ord(it)]+=1
for it in s:
    if(vis[ord(it)]>=2):
        print(it,vis[ord(it)])
        vis[ord(it)]=0
#googleapplemicrosoft
# Code By Phoenix_ZH
  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Phoenix_ZengHao

创作不易,能否打赏一瓶饮料?

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

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

打赏作者

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

抵扣说明:

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

余额充值