python---列表返回偶数列表、url内容、多列表最大值、目录下文件、列表的extend使用

1 定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。
Python代码

root@kali:~/python/laowangpy/function# cat xt0301oushu.py 
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import sys
import os

ounum = []
def get_num(num):#列表参数类型
    i = 0
    while num[i] != num[-1]:#当遍历元素不是最后一个元素时
        if num[i]%2 == 0:#如果元素是偶数时
            ounum.append(num[i])#偶数元素增加到列表ounum中
        i = i + 1#自增加1
    if num[-1]%2 == 0:#如果最后一个的元素是偶数时
        ounum.append(num[-1])#最后一个元素是偶数增加到列表ounum中
    print ounum

list = [1,2,46,44,54,67,89,88,9,12,124,11,146,3,4,5,6,7,8,9,12,13,14,15,16]#列表
get_num(list)

root@kali:~/python/laowangpy/function# 

运行结果

root@kali:~/python/laowangpy/function# python xt0301oushu.py 
[2, 46, 44, 54, 88, 12, 124, 146, 4, 6, 8, 12, 14, 16]
root@kali:~/python/laowangpy/function# 

2 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)。

python代码:

root@kali:~/python/laowangpy/function# cat xt0302url.py 
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import urllib2

print "第一种方式读取网页内容信息"
response = urllib2.urlopen("http://www.baidu.com")
print response.read()
print "============================"

print "第二种方式读取网页内容信息"
request = urllib2.Request("http://www.baidu.com")
response = urllib2.urlopen(request)
print response.read()

root@kali:~/python/laowangpy/function# 

运行情况:

root@kali:~/python/laowangpy/function# python xt0302url.py 
...................................
...................................
ache/static/plugins/every_cookie_mac_82990d4.js"),setTimeout(function(){$.ajax({url:e,cache:!0,dataType:"script"})},0);var t=navigator&&navigator.userAgent?navigator.userAgent:"",o=document&&document.cookie?document.cookie:"",i=!!(t.match(/(msie [2-8])/i)||t.match(/windows.*safari/i)&&!t.match(/chrome/i)||t.match(/(linux.*firefox)/i)||t.match(/Chrome\/29/i)||t.match(/mac os x.*firefox/i)||o.match(/\bISSW=1/)||0==UPS.get("isSwitch"));
bds&&bds.comm&&(bds.comm.supportis=!i,bds.comm.isui=!0),window.__restart_confirm_timeout=!0,window.__confirm_timeout=8e3,window.__disable_is_guide=!0,window.__disable_swap_to_empty=!0,window.__switch_add_mask=!0;var s="http://s1.bdstatic.com/r/www/cache/static/global/js/all_async_search_e1e98e4.js",n="/script";document.write("<script src='"+s+"'><"+n+">"),bds.comm.newindex&&$(window).on("index_off",function(){$('<div class="c-tips-container" id="c-tips-container"></div>').insertAfter("#wrapper"),window.__sample_dynamic_tab&&$("#s_tab").remove()
}),bds.comm&&bds.comm.ishome&&Cookie.get("H_PS_PSSID")&&(bds.comm.indexSid=Cookie.get("H_PS_PSSID"))}();</script>



<script>
if(bds.comm.supportis){
    window.__restart_confirm_timeout=true;
    window.__confirm_timeout=8000;
    window.__disable_is_guide=true;
    window.__disable_swap_to_empty=true;
}
initPreload({
    'isui':true,
    'index_form':"#form",
    'index_kw':"#kw",
    'result_form':"#form",
    'result_kw':"#kw"
});
</script>

<script>
if(navigator.cookieEnabled){
    document.cookie="NOJS=;expires=Sat, 01 Jan 2000 00:00:00 GMT";
}
</script>

</body>
</html>

root@kali:~/python/laowangpy/function# 

3 定义一个方法 func,该func引入任意多的列表参数,返回所有列表中最大的那个元素。

python代码:
解法1:

root@kali:~/python/laowangpy/function# cat xt0303mutilist.py 
#!/usr/bin/python
# --*-- coding:utf-8 --*--

dicmax = {}#定义空白字典
def get_fun(list1,list2,list3):
    dicmax["list1's max is"] = max(list1)#列表1中最大元素
    dicmax["list2's max is"] = max(list2)
    dicmax["list3's max is"] = max(list3)
    print dicmax#打印最大值字典

list3 = [123,23,45,234,56,567,78,88,99,123,445,45,667,334,123]
list2 = [33,4,5,66,77,8,9,12,34,55,124,55]
list1 = [1,2,46,44,54,67,89,88,9,12,124,11,146,3,4,5,6,7,8,9,12,13,14,15,16]#列表

get_fun(list1,list2,list3)

运行情况:

root@kali:~/python/laowangpy/function# python xt0303mutilist.py 
{"list1's max is": 146, "list2's max is": 124, "list3's max is": 667}
root@kali:~/python/laowangpy/function# 

python 寻找list中最大元素对应的索引
http://blog.csdn.net/nov_csdn/article/details/52959346

aa = [1,2,3,4,5]
aa.index(max(aa))
如果aa是numpy数组:
aa = numpy.array([1,2,3,4,5])
先把aa转换为List,再求索引:
bb = aa.tolist()
bb.index(max(bb))

解法2:

>>> def func(*l_args):
...     all_list = []
...     for i in l_args:
...             if isinstance(i,list):
...                     all_list.extend(i)#把后面的列表元素累加到all_list列表的最后
...             else:
...                     return "please right list!"
...     all_list.sort()
...     return all_list[-1]
... 
>>> print func([1,34,56,555,23],[33,32,44,33,555,55],[1,2,3,4])
555
>>> print func([1,34,56,555,23],"sdf",[1,2,3,4])
please right list!
>>> 

列表的extend使用方法

>>> a = [1,2,3,4]
>>> b = [23,4,5,6,777]
>>> a.extend(b)#把列表b中所有元素加入列表a最后
>>> a
[1, 2, 3, 4, 23, 4, 5, 6, 777]
>>> 
>>> c =[000,22555,3445,]
>>> a.extend(c)#把列表c中所有元素加入列表a最后
>>> a
[1, 2, 3, 4, 23, 4, 5, 6, 777, 0, 22555, 3445]
>>> 
>>> a.append(c)#把列表c当成一个元素加入
>>> a
[1, 2, 3, 4, 23, 4, 5, 6, 777, 0, 22555, 3445, [0, 22555, 3445]]
>>> a.append(b)#把列表b当成一个元素加入
>>> a
[1, 2, 3, 4, 23, 4, 5, 6, 777, 0, 22555, 3445, [0, 22555, 3445], [23, 4, 5, 6, 777]]
>>> 

4 定义一个方法get_dir(f),f参数为任意一个磁盘路径,该函数返回路径下的所有文件夹组成的列表,如果没有文件夹则返回”Not dir”。

python代码:
解法1:

#linux的目录读取
root@kali:~/python/laowangpy/function# cat 4pathwin.py 
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import sys
import os

def gettext(*path):
    print path[0]
    return os.listdir(path[0])

print  gettext("/root/python/laowangpy/function/")

root@kali:~/python/laowangpy/function# python 4pathwin.py 
/root/python/laowangpy/function/
['funvar2.py', 'fuc_name_1.py', '4pathwin.py', '2funcmaxchar.py', '3gethelpmodule.py', 'fuc_add.py', 'funvar1.py', '.4pathwin.py.swp', '1funcmaxmin.py', 'funvar3.py']
root@kali:~/python/laowangpy/function# 

#windows的目录读取
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import sys
import os

def gettext(*path):
    print path[0]
    return os.listdir(path[0])

print  gettext("D:/BaiduNetdiskDownload/")

C:\Python27>python 4pathwin.py
D:/BaiduNetdiskDownload/
['.accelerate', '002-\xd0\xa1\xbc\xd7\xd3\xe3\xa1\xaa\xa1\xaaPython', '005-\xc1\xb6\xca\xfdPYTHON', '010\xc0\xcf\xc4\xd0\xba\xa2 python\xbf\xce\xb3\xcc', 'python', 'python33', 'Python3\xb3\xcc\xd0\xf2\xbf\xaa\xb7\xa2\xd6\xb8\xc4\xcf.\xb5\xda\xb6\xfe\xb0\xe6(\xb4\xf8\xca\xe9\xc7\xa9)', 'Python\xbf\xaa\xb7\xa2\xbc\xbc\xca\xf5\xcf\xea\xbd\xe2.pdf', '\xc0\xcf\xcd\xf5Python', '\xc0\xcf\xc4\xd0\xba\xa2python\xd7\xd4\xb6\xaf\xbb\xaf\xd4\xcb\xce\xac\xca\xd3\xc6\xb5\xbd\xcc\xb3\xcc\xa3\xa8\xc8\xab9\xbc\xaf\xa3\xa9']

C:\Python27>

解法2:

>>> import os
>>> import sys
>>> def get_dir(fdir):#该函数返回路径下的所有文件夹组成的列表,如果没有文件夹则返回“not dir”
...     file_dir = []
...     if not os.path.isdir(fdir):
...             print "it is not file dir,please input again!!"
...     for i in os.listdir(fdir):
...             file_dir.append(i)
...     if file_dir:#如果列表存在则进入
...             return "not dir"
...     else:
...             return file_dir
... 
>>> print get_dir("/root/python/laowangpy")
['test1.txt', 'searchzimu.py', '_project', 'print_test.txt', 'dictserch.py', 'logid.txt', 'test_def_info_list.py', 'sortzimu.py', 'geshihua.py', 'sortzimu2.py', 'hello.py', 'sortdaxiao.py', '.geshihua.py.swp', 'def1.py', 'test_def_info.py', 'idsearch.py', 'nocount.py', 'pytest1_env', 'beiscount.py', 'print_cont.py', 'searchzimu2.py', 'print_test.py', 'list_demo.py', 'print1.py', 'pytest2_env', 'withtest.py', 'memid.txt', 'a.txt', 'zimuchange.py', 'id.txt', 'test_uncode.py', 'function', 'datadig', 'test2.txt', 'result.txt']
>>> print get_dir("1234")
it is not file dir,please input again!!
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in get_dir
OSError: [Errno 2] No such file or directory: '1234'
>>> 
>>> a =[]
>>> if a:#如果a存在则进入
...     print "2"
... 
>>> 
>>> a = {}
>>> if a :#如果a存在则进入
...     print "haha0"
... 
>>> 
>>> if None:
...     print "xxx"
... 
>>> 

注明:吸取上次作业遇到的问题,要求写的函数逻辑清楚,并且考虑一些特殊的情况处理,能做断言的尽量用断言。

5 用lambda和filter完成下面功能:输出一个列表,列表里面包括:1-100内的所有偶数。(提示:可以用filter,lambda)

6 用位置匹配,关键字匹配,收集匹配(元组收集,字典收集)分别写4个函数,完成功能;

传递3个列表参数:

[1,2,3],[1,5,65],[33,445,22]

返回这3个列表中元素最大的那个,结果是:445

7 递归函数解释,用自己的话说明这个递归函数的工作流程。

def func1(i):
if i<100:
return i + func1(i+1)
return i
print func1(0)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

徐为波

看着给就好了,学习写作有点累!

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

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

打赏作者

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

抵扣说明:

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

余额充值