我正在尝试做一些练习计划。我正在尝试创建一个添加'和'到传递给它的任何列表的-1点。 我知道我必须做什么,但我不知道该怎么做。
使用插件我需要插入'和'在元素-1,所以像modList.insert(-1,x) 其中x是我要添加任何行的地方 (-1 + str('和')) 但这不起作用。
这是我到目前为止所做的:
def modList(someList):
someList.insert(-1, 'and')
print(someList)
spam = ['Dog','Cat','Bat','Mouse']
modList(spam)
输出:['Dog', 'Cat', 'Bat', 'and', 'Mouse']
所需的输出:['Dog, Cat, Bat, and Mouse']
非常感谢任何帮助...
答案 0 :(得分:2)
如果您不介意修改列表本身:
def insert_end(li):
# note that this function is inplace, so no need to 'return li'
li[-1] = 'and ' + li[-1]
li = ['a', 'b', 'c']
insert_end(li)
print(li)
>> ['a', 'b', 'and c']
如果你想要的输出是一个字符串(没有修改列表,那么需要return
输出的字符串):
def insert_end(li):
return ', '.join(string for string in li[:-1]) + ' and ' + li[-1]
li = ['a', 'b', 'c']
print(insert_end(li))
>> 'a, b and c'
为了获得您发布的实际输出(包含1个字符串的列表),只需返回上一个示例中的列表:
def insert_end(li):
return [', '.join(string for string in li[:-1]) + ' and ' + li[-1]]
li = ['a', 'b', 'c']
print(insert_end(li))
>> ['a, b and c']
更新1
正如@StevenSummers在评论中提到的那样,您只需', '.join(li[:-1])
而不是', '.join(string for string in li[:-1])
。它的行为完全一样。
更新2
根据评论中的要求,对行', '.join(string for string in li[:-1]) + ' and ' + li[-1]
:
string for string in li[:-1]
这将返回一个生成器对象,该对象迭代列表并返回除最后一个元素之外的所有元素。你可以在这里看到它:
li = ['a', 'b', 'c']
generator = (string for string in li[:-1])
for s in generator:
print(s)
>> 'a'
'b'
现在我们在该生成器对象上调用', '.join
。 join
返回一个字符串,该字符串是通过在它作为参数接收的iterable元素之间插入调用它的字符串而创建的。
现在我们有:
li = ['a', 'b', 'c']
generator = (string for string in li[:-1])
# remember that generator is going to return ('a', 'b')
print(', '.join(generator))
>> 'a, b' # note that we get a string back, with `, ` between the elements in generator
下一部分非常简单。
我们只需要将'and '
和列表的最后一个元素添加到输出字符串中:
'a, b' + ' and ' + li[-1]
>> 'a, b and c`
答案 1 :(得分:0)
您可以尝试:
var app=angular.module('spesh',[]);
app.controller('formController',function($scope,$http){
$scope.addTimeDetails=function(){
console.log('time',$scope.time,$scope.time1);
}
})
app.directive('timePicker', [function () {
return {
restrict: 'A',
require: 'ngModel',
scope: {
model: '=ngModel'
},
link: function ($scope, element, attrs, ngModelCtrl) {
element.timepicker();
element.on('changeTime', function () {
$scope.$apply(function () {
$scope.model = element.val();
});
});
}
}
}]);
答案 2 :(得分:0)
这是你正在寻找的吗?
def modList(spam):
var = 'and ' + spam.pop()
spam.append(var)
spamstr = ', '.join(spam)
return spamstr