所以我被分配为列表上的技能开发制作一个简短的程序。 这是代码:
x=[21,23,25,27]
y=[5,6,7,8]
z=x+y
print (z)
z[0]=45
print (z)
a=[x+y]
print a
print (a[1][2])
我们被要求做的是猜测代码会打印什么。但是最后一行不起作用而且我总是会出错。这条线是直接从给定的练习中给出的。显示[1]和[1]的唯一方法[2]元素是在for i in range命令中执行它我是否正确?我尝试了其他不起作用的语法,我相信这是唯一的方法。
答案 0 :(得分:1)
a=[x+y]
,此处+
将创建一个新列表并将其添加到另一个列表中,以便创建包含两个内部列表的2D列表,使用,
作为分隔符,其中+
作为,
1}}充当连接操作,因此使用a=[x,y]
作为
x=[21,23,25,27]
y=[5,6,7,8]
z=x+y
print (z)
z[0]=45
print (z)
a = [[i,j] for i,j in zip(x,y)]
# i is element in x and j is element in y
# [i,j] a new list with elements i and j
print(a)
#a=[x,y]
print (a[0]) # [21,5]
要使用带有新列表的单个索引打印具有相同索引的元素,我们可以创建一个将相同索引值保持在一起的2D列表
import React from 'react';
import PropTypes from 'prop-types';
import { Redirect, Route } from 'react-router-dom';
import axios from 'axios';
const PRIVATE_ROOT = '/account';
const PUBLIC_ROOT = '/';
const RenderRoute = ({response, isPrivate, Route, Redirect, component, ...props}) => {
console.log('is_logged', response.data.is_logged); // boolean
console.log('isPrivate', isPrivate); // boolean
console.log('response', response); // axios object
console.log('route', Route); // function route
console.log('component', component); // home component
console.log('props', {...props}); // route props
if (response.data.is_logged) {
// set last activity on local storage
let now = new Date();
now = parseInt(now.getTime() / 1000);
localStorage.setItem('last_active', now );
return isPrivate
? <Route { ...props } component={ component } />
: <Route { ...props } component={ component } />;
} else {
return isPrivate
? <Redirect to={ PUBLIC_ROOT } />
: <Route { ...props } component={ component } />;
}
}
const AuthRoute = ({component, ...props}) => {
const { isPrivate } = component;
let last_active_client = localStorage.getItem('last_active') ? localStorage.getItem('last_active') : 0;
let data = {
last_active_client: last_active_client
}
let getApiSession = new Promise((resolve) => {
resolve(axios.post('/api-session', data));
});
getApiSession.then(response => RenderRoute({response, isPrivate,Route, Redirect, component, ...props})
).catch((error) => {
console.log(error);
});
}
export default AuthRoute;
答案 1 :(得分:0)
你可以像你说的那样使用for语句。但也有另一种方式。你可以试试这个:
print(a[:3])
上述代码基本上将从a开始到2,即3之前打印元素。
答案 2 :(得分:0)
错误归结为索引a[1]
。
示例:
x=[21,23,25,27]
y=[5,6,7,8]
z=x+y
print (z)
z[0]=45
print (z)
# a = list of lists, where x+y is the first and only list [[x+y],...]
a=[x+y]
print(a)
# print [x+y]
print (a[0])
# a[1][2] here 1 was out of bounds
# a[0][2] the third member of list [0], i.e. [x+y]
print (a[0][2])
# list of lists, with two memmbers [x, y]
a = [z,y]
print(a)
# first member of x
print(a[0][0])
# print first member of y
print(a[1][0])
输出:
# print (z)
[21, 23, 25, 27, 5, 6, 7, 8]
# print(z)
[45, 23, 25, 27, 5, 6, 7, 8]
# print(a)
[[21, 23, 25, 27, 5, 6, 7, 8]]
# print(a[0])
[21, 23, 25, 27, 5, 6, 7, 8]
# print(a[0][2])
25
# print([z,y])
[[45, 23, 25, 27, 5, 6, 7, 8], [5, 6, 7, 8]]
# print a[0][0]
45
# print a[1][0]
5
答案 3 :(得分:0)
在您提出的问题中或在您的写作中存在错误,因为它没有索引1.
a中有一个元素,它是一个列表。该列表与z
相同<canvas></canvas>
<script src="https://twgljs.org/dist/4.x/twgl-full.js"></script>
<div id="ui">
<div>zoom:<span id="zoom"></span></div>
</div>
创建一个包含所有x和y元素的新列表
z = x+y
a与[z]列表中的z列表相同
里面只有一个[0],它是x + y的列表
你可以有一个[0] [2],即25
但没有[1]