J'ai besoin d'utiliser mais je veux que le résultat soit n'importe quelle solution pour cela? P>
EDIT: si code> à l'intérieur d'un
table code> boucle, par exemple.
Tableau [si [i <3, i], {i, 5}] code> donnera
{1, 2, null, null, null} code> p> p> P>
{1,2} code>. p>
Et si nous considérons table [si [i <3, f [i]], {i, 5}] code> qui donne
{f [1], f [2], null, null , Null} code> p>
5 Réponses :
Si vous devez le supprimer d'une liste existante, vous pouvez utiliser
Reap@Do[If[i < 3, Sow[i]], {i, 5}] list = %[[2, 1]]
+1. J'ai réellement mis en place votre dernière suggestion avec Reap-Sow CODE> en pleine généralité dans la réponse que j'ai liée à, dans ma réponse (juste peut-être la syntaxe de la condition pourrait être plus conviviale).
Autre alternative, vous pouvez utiliser la variation de la table Le dernier argument est une fonction représentant la condition. En fait, il serait bien de disposer de syntaxe où l'on pourrait utiliser directement une syntaxe code> de Cette réponse , conçue spécifiquement pour le bâtiment de la table conditionnelle. Voici comment il apparaît:
i ou d'autres variables d'itérateur) et une telle syntaxe n'est probablement pas difficile à ajouter. p> p>
Veuillez envisager d'illustrer pourquoi cela peut être préféré à la réponse simpliste que j'ai donnée ci-dessous.
@Monsieur. Assistant pour une raison très simple: il s'agit d'une fonction générale (ma version). Il gère également un étui multidimensionnel, avec une syntaxe uniforme. Il est toujours plus facile de lire et serait encore plus facile lorsque j'ajoute la syntaxe pour remplacer la fonction par une expression pour une condition. Devrait-il s'agir d'une fonction intégrée, ou tout simplement un wri-approuvé-être approuvé, il n'y aurait aucune question sur l'utilisation de rien d'autre. Imaginez que vous n'ayez pas dit cas code> et que quelqu'un vous en donne un (mis en œuvre sur le niveau supérieur). Ne l'utiliseriez-vous pas (si la mise en œuvre est OK)? Beaucoup de choses se situent à peu près des habitudes, des conventions, etc.
Peut-être que vous devriez inclure cela dans votre réponse? ;-)
@ M.Wizard ne le pense pas :). Il y a suffisamment d'informations pour que ceux qui en ont besoin le trouveront.
À moins que vous ne soyez obstiné et supprimez votre commentaire précédent, c'est au moins sur cette page. +1
@ M.Wizard je garderai le commentaire :). Merci pour la uppote.
Si vous utilisez la séquence [] au lieu de NULL, vous pouvez faire
Table[If[i < 3, i, Sequence[]], {i, 5}]
Rolf, s'il vous plaît voir la réponse que je viens d'ajouter. J'ai presque édité votre question au lieu de la publier, mais j'ai réalisé que je remplacerais essentiellement votre réponse avec la mienne, alors je ne l'ai pas fait.
M. Wizard: Très sympa! Je ne savais pas que ## & @ [] être une séquence [] équivalente.
concise: ceci fonctionne car la fonction ## & code> n'évalue pas immédiatement. p>
## & est une fonction "disparition". p>
----> {1, 2, 3, 4}
@Leonid merci d'avoir montré ou de me rappeler cela il y a quelques mois.
Je pense que c'était votre invention. J'utilise normalement la séquence @@ {} code>, ce qui n'est pas aussi élégant (et peut aussi être un peu plus lent plus lent).
@Leonid; Je crois que c'est correct, mais j'avais utilisé Séquence @ inégalée [] code> Intérieur
si code> avant cela. (PS Savez-vous de rechercher des commentaires, à part Google? J'aimerais trouver cet échange.)
Dans la réponse précédente, la pièce donne p> ## & [] code> peut être remplacée par le symbole intégré
rien code>
Question quelque peu liée: Stackoverflow.com/q/6313505/618728
Question connexe: mathematica.stackexchange.com/questions/3700/...