鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 23(答题领鱼币)

[复制链接]
发表于 2018-3-5 15:41:18 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 15:42:39 | 显示全部楼层
定义一个函数,遇到整型元素,直接插入结果。遇到列表元素,调用这个函数。
  1. result = []
  2. def nd_to_1d(lst):
  3.     for i in lst:        
  4.         if type(i) == int:
  5.             result.append(i)
  6.         elif type(i) == list:
  7.             nd_to_1d(i)
  8.     return result
  9. list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
  10. result1 = nd_to_1d(list1)
  11. print(result1)
  12.             
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 12:41:03 | 显示全部楼层
抄作业!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-27 19:56:35 | 显示全部楼层
dd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-29 14:38:40 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-30 12:53:03 | 显示全部楼层
import re

list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
list_old = str(list1)
p = r'\d+'
list_new = re.findall(p, list_old)
list_new1 = []
for each in list_new:
        list_new1.append(int(each))
       
print(list_new1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 10:08:46 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-10 21:01:47 | 显示全部楼层
  1. def uncompress(lst, newlst=[]):
  2.     for i in lst:
  3.         if isinstance(i, list):
  4.             uncompress(i)
  5.         else:
  6.             newlst.append(i)
  7.     return newlst
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-11 16:24:52 | 显示全部楼层
  1. '''
  2. 把一个嵌套的多维列表变为一维列表,如:
  3. list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
  4. 变成:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
  5. '''
  6. def funlist(l):
  7.     listx=[]
  8.     for x in l:
  9.         if isinstance(x,int):
  10.             listx.append(x)
  11.         else:
  12.             listx+=funlist(x)
  13.     return listx

  14. list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
  15. print(funlist(list1))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-5 20:22:19 | 显示全部楼层
学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-7 16:04:05 | 显示全部楼层
lists=[1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
def delist(Lists):
    while True:
        i=0
        list2 = []
        for each in Lists:
            if isinstance(each,list):
                list2.extend(each)
                i+=1
            else:
                list2.append(each)
        Lists=list2[:]
        if i==0:
            return Lists
print(delist(lists))
结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
不够简单···不过实在想不出更简单的了···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-16 22:20:33 | 显示全部楼层
  1. list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
  2. str1 = str(list1).replace('[','').replace(']','').replace(',','').replace(' ',',')
  3. print('[%s]'%str1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-17 11:23:32 | 显示全部楼层
  1. list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
  2. y = []
  3. def decom(x):
  4.     global y
  5.     for each in x:
  6.         if isinstance(each,int):
  7.             y.append(each)
  8.         else:
  9.             decom(each)
  10.     return y
  11.         
  12. result = decom(list1)
  13. print(result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-18 10:57:17 | 显示全部楼层
入门级别来学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-27 15:10:16 | 显示全部楼层
想看大佬们的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-1 19:11:29 | 显示全部楼层
list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
list2=[]
str1=str(list1)
for each in str1:
    if each.isdigit():
        list2.append(each)

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

使用道具 举报

发表于 2018-8-9 14:19:35 | 显示全部楼层
跑得出結果,但要怎麼縮短啊,不知如何用def來做重複工作


list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
list2 = []

for i in range(len(list1)):
    temp = list1[i]
    if type(temp) == list:
        list2.extend(temp)
    else:
        list2.append(temp)

list3 = []

for i in range(len(list2)):
    temp = list2[i]
    if type(temp) == list:
        list3.extend(temp)
    else:
        list3.append(temp)

list4 = []

for i in range(len(list3)):
    temp = list3[i]
    if type(temp) == list:
        list4.extend(temp)
    else:
        list4.append(temp)

list5 = []

for i in range(len(list4)):
    temp = list4[i]
    if type(temp) == list:
        list5.extend(temp)
    else:
        list5.append(temp)

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

使用道具 举报

发表于 2018-8-17 08:49:16 | 显示全部楼层
  1. list1 = [1, [2], [3, 4], [[5, 6], 7], [8, [[9, [10], 11], 12], 13]]
  2. list2 = []

  3. def get_all(list1):
  4.     for each in list1:
  5.         if isinstance(each,int) == True:
  6.             list2.append(each)
  7.         else:
  8.             get_all(each)
  9.     return list2
  10.             
  11. print(get_all(list1))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-6 16:35:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-6 22:22:25 | 显示全部楼层
xuexi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 14:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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