列表中项目中字符的移动位置

时间:2018-11-10 18:02:09

标签: python list items

如果我有清单,例如

loaders: [{
   test: /\.scss$/,
   exclude: fs.realpathSync('./node_modules/path/to/bootstrap/src/styles')
   loader: cssModulesLoader,
}

使用什么方法可以移动字符在项目本身中的位置并进行存储。因此,可以通过将第一个字符移到末尾来将['Hello', 'what', 'is', 'your', 'name'] 更改为'Hello',并将其应用于其余项目。

3 个答案:

答案 0 :(得分:2)

您可以使用slicing并建立索引:

def shift(s):
    return s[1:] + s[0]

data = ['Hello', 'what', 'is', 'your', 'name']

result = [shift(s) for s in data]

print(result)

输出

['elloH', 'hatw', 'si', 'oury', 'amen']

语句result = [shift(s) for s in data]被称为list comprehension,是以下语句的等价

result = []
for s in data:
    result.append(shift(s))

最后,另一种替代方法是使用map

result = list(map(shift, data))

函数映射将shift应用于数据的每个元素,但它返回(在Python 3中)可迭代,因此您需要将其转换为list。

答案 1 :(得分:2)

只需重新构建列表并使用切片和加法生成新字符串:

lst = ['Hello', 'what', 'is', 'your', 'name']

result = [x[1:]+x[0] if x else "" for x in lst]

结果:

['elloH', 'hatw', 'si', 'oury', 'amen']

(请注意允许对空字符串具有鲁棒性的三元表达式,因为在空字符串x[0]的情况下会产生一个IndexError。如果没有三元表达式,我们可以使用[x[1:]+x[0:1] for x in lst]做同样的事情)

答案 2 :(得分:2)

检查以下代码:

node {

 // Some declaration and code

stage('Prepare deploy') {
    // Create a talbe for the servers lists
    def servers = [:]

    // For each server know, if deployment is enabled
    // deploy resources
    params.each { srv, value ->
    if ("$value" == "true"){
        // add the current current to the enabled servers
        servers["Server ${srv}"] = {

           // Install server - the SERVER and CONF variable need to be propagate to the others scripts
withEnv(["SERVER=props.SRV_${srv}","CONF=env.DEPLOY_HOME + ${srv}"]){
           load env.JENKINSFILES_DIRECTORY + "/server-configuration"
           load env.JENKINSFILES_DIRECTORY + "/server-deploiement"
           load env.JENKINSFILES_DIRECTORY + "/server-postconfig"
           load env.JENKINSFILES_DIRECTORY + "/server-start"
        }
}
    }
}
parallel servers
}
}

输出:

#!/usr/bin/env groovy​
node{
 // Some declaration
 stage('configure serveur'){
      // The variable SERVER and CONF must be visible here
      // is it possible ?
      sh "ssh -X " + env.USER +"@${env.SERVER} 'sh echo \"${env.CONF}\"'"
 }
}