鱼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 | 显示全部楼层
  1. def rebuildList(list1) :
  2.         firstNum, lastNum = list1[0], list1[-1]
  3.         for i in range(1, len(list1)) :
  4.                 temp1, temp2 = list1[i], list1[i - 1]
  5.                 list1[i - 1] = temp2 % 10 * 10 + temp1 // 10
  6.         list1.pop()
  7.         list1.insert(0, lastNum % 10 * 10 + firstNum // 10)
  8.         return list1

  9. def showResult() :
  10.         temp = ''
  11.         list1 = []
  12.         print('请输入数字,按回车分隔,按\'q\'键结束:')
  13.         while True :
  14.                 temp = input()
  15.                 if temp == 'q' :
  16.                         break
  17.                 else :
  18.                         list1.append(int(temp))
  19.         print('原列表为:', end='')
  20.         print(list1)
  21.         print('处理后的列表为:', end='')
  22.         print(rebuildList(list1))

  23. 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)//log(10)) + array//10) for i in range(1,len(array))])
        return first
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 11:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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