这是一个非常快速的问题,我无法弄清楚我的生活,虽然看起来很简单......
如何在列表中删除列表中每个第4个索引的最后2个字符?所以用较少混乱的术语来说:
f = ['yes', 'no', 'tot', 'foop\n']
p = ['ick', 'throw', 'tamp', 'lap\n']
L = []
L.append(f)
L.append(p)
所以现在L是:
L = [['yes', 'no', 'tot', 'foop\n'], ['ick', 'throw', 'tamp', 'lap\n']]
我将如何编写一个循环来摆脱每个第四个索引末尾的\ n,在两个列表中(也可以扩展到不仅仅是列表中我上面的2个列表) )?
我只是希望它重新返回L,而没有那些\ n在最后一个索引的末尾。
答案 0 :(得分:1)
f = ['yes', 'no', 'tot', 'foop\n']
p = ['ick', 'throw', 'tamp', 'lap\n']
L = []
L.append(f)
L.append(p)
for i in range(len(L)):
L[i][3] = L[i][3].rstrip('\n') # Use rstrip to strip the specified character(s) from the right side of the string.
print L
>>[['yes', 'no', 'tot', 'foop'], ['ick', 'throw', 'tamp', 'lap']]
答案 1 :(得分:1)
f = ['yes', 'no', 'tot', 'foop\n']
p = ['ick', 'throw', 'tamp', 'lap\n']
L = []
L.append(f)
L.append(p)
#iterate through every element in the list and
#apply simple slicing
for x in L:
x[-1] = x[-1][:-1]
输出 -
[['yes', 'no', 'tot', 'foop'], ['ick', 'throw', 'tamp', 'lap']]
答案 2 :(得分:1)
如果您只想从列表理解的第四个索引中删除新行和空格:
>>> f = ['yes', 'no', 'tot', 'foop\n']
>>> p = ['ick', 'throw', 'tamp', 'lap\n']
>>> [x[0:3]+[x[3].rstrip()] for x in [f]+[p]]
[['yes', 'no', 'tot', 'foop'], ['ick', 'throw', 'tamp', 'lap']]
或等级map
:
>>> list(map(lambda x: x[0:3]+[x[3].rstrip()],[f]+[p]))
[['yes', 'no', 'tot', 'foop'], ['ick', 'throw', 'tamp', 'lap']]
答案 3 :(得分:0)
正如评论中已经提到的那样:
f = ['yes', 'no', 'tot', 'foop\n']
p = ['ick', 'throw', 'tamp', 'lap\n']
L = []
L.append([item.strip() for item in f])
L.append([item.strip() for item in p])
或者一步到位:
f = ['yes', 'no', 'tot', 'foop\n']
p = ['ick', 'throw', 'tamp', 'lap\n']
L = []
for lst in [f, p]:
L.append([item.strip() for item in lst])
或更短:
f = ['yes', 'no', 'tot', 'foop\n']
p = ['ick', 'throw', 'tamp', 'lap\n']
L = [[item.strip() for item in l] for l in [f, p]]
最后但并非最不重要的是,字面上回答你的问题;如果您需要专门从列表列表中删除某些索引:
L = [['yes', 'no', 'tot', 'foop\n'], ['ick', 'throw', 'tamp', 'lap\n']]
for lst in L:
lst[3] = lst[3].strip()
默认情况下,strip()
会从空格字符中删除,请参阅this。
答案 4 :(得分:0)
var lstcatlist = (from s in context.M_ProductCategory
join p in context.M_CategoryDetails on s.ID equals p.CategoryID
select new
{
catid = s.ID,
title = s.Title,
prod_id = p.ID,
parent = p.ParentID,
desc = p.Description
}).GroupBy(x => x.catid).ToList();
答案 5 :(得分:0)
要从列表中获取每个第4个元素,请使用此部分:i[3::4]
从项目x[:-1]
输出脚本:
for i in L:
i[3::4] = [ x[:-1] for x in i[3::4]]
结果:
[[' yes',' no',' tot',' foop'],[' ick' ;,' throw',' tamp',' lap']