鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

[技术交流] Python:每日一题 167

[复制链接]
发表于 2018-5-12 08:43:28 | 显示全部楼层
def fun():
    list1 = [33, 54, 29, 75, 83, 15, 38, 30, 88, 15]
    lst = ""
    for i in list1:
        lst += str(i)
    lst = lst[-1] + lst[:-1]
    out = ""
    for i in range(len(lst)//2):
        out += lst[i*2:2*i + 2] + ","
    out = out.split(",")
    out_list = []
    for i in out:
        if i != "":
            out_list.append(int(i))
    return out_list
fun()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-25 20:55:58 | 显示全部楼层
def rebuildList(list1) :
        firstNum, lastNum = list1[0], list1[-1]
        for i in range(1, len(list1)) :
                temp1, temp2 = list1[i], list1[i - 1]
                list1[i - 1] = temp2 % 10 * 10 + temp1 // 10
        list1.pop()
        list1.insert(0, lastNum % 10 * 10 + firstNum // 10)
        return list1

def showResult() :
        temp = ''
        list1 = []
        print('请输入数字,按回车分隔,按\'q\'键结束:')
        while True :
                temp = input()
                if temp == 'q' :
                        break
                else :
                        list1.append(int(temp))
        print('原列表为:', end='')
        print(list1)
        print('处理后的列表为:', end='')
        print(rebuildList(list1))

showResult()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-25 22:59:22 | 显示全部楼层
本帖最后由 爱学习的喵 于 2019-1-25 23:01 编辑

最优化代码,同时处理2位以上问题
def fun167(array):
        from math import log
        first = [int(array[-1]%10*10**(log(array[0])//log(10)) + array[0]//10)]
        first.extend([int(array[i-1]%10*10**(log(array[i])//log(10)) + array[i]//10) for i in range(1,len(array))])
        return first
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:36:24 | 显示全部楼层
def fun115(list1):
    a=[]
    b=[]
    for i in list1:
        first_bit=i//10
        second_bit=i%10
        a.append(str(first_bit))
        b.append(str(second_bit))
    result=[]
    for j in range(1,len(b)):
        result.append(int(b[j-1]+a[j]))
    result.insert(0,int(b[-1]+a[0]))
    return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-7 15:52:36 | 显示全部楼层
def f167(arr):
    s = ''.join(str(a) for a in arr)
    s = s[-1] + s[:-1]
    brr = list()
    for i in range(0, len(s), 2):
        brr.append(int(s[i:i + 2]))
    return brr


arr = [33, 54, 29, 75, 83, 15, 38, 30, 88, 15]
print(f167(arr))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 21:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表